Skip to content

Instantly share code, notes, and snippets.

@maroshii
Last active September 21, 2017 22:13
Show Gist options
  • Save maroshii/37a60c301a652212c9d488c1cec5f647 to your computer and use it in GitHub Desktop.
Save maroshii/37a60c301a652212c9d488c1cec5f647 to your computer and use it in GitHub Desktop.
Runs a full selenium matrix and run tests with nightwatch. Browsers: chrome, firefox
SELENIUM_VERSION?=3.5.3
LAUNCH_URL?=https://google.com
.PHONY: default
default:
@$(MAKE) run; OK=$$?; $(MAKE) clean; exit $$OK
.PHONY: build-test-image
build-test-image:
@echo "\033[1;33mBuilding E2E test image\033[0m"
@docker build -t e2e_tests .
@echo "\033[1;92m-- OK\033[0m\n"
.PHONY: create-network
create-network:
@echo "\033[1;33mCreating local network\033[0m"
@docker network create --driver bridge e2e_test_network
@echo "\033[1;92m-- OK\033[0m\n"
.PHONY: start-selenium
start-selenium: create-network
@echo "\033[1;33mStarting Selenium server\033[0m"
@docker run \
-d \
--name selenium \
-P \
--network e2e_test_network \
selenium/hub:$(SELENIUM_VERSION)
@sleep 3 && docker logs selenium
@echo "\033[1;92m-- OK\033[0m\n"
.PHONY: start-chrome-node
start-chrome-node: start-selenium
@echo "\033[1;33mStarting Chrome node\033[0m"
@docker run -d \
--name chrome \
--network e2e_test_network \
-e HUB_PORT_4444_TCP_ADDR=selenium \
-e HUB_PORT_4444_TCP_PORT=4444 \
-e DBUS_SESSION_BUS_ADDRESS=/dev/null \
-v /dev/shm:/dev/shm \
selenium/node-chrome:$(SELENIUM_VERSION)
@sleep 3 && docker logs chrome
@echo "\033[1;92m-- OK\033[0m\n"
.PHONY: start-firefox-node
start-firefox-node: start-selenium
@echo "\033[1;33mStarting Firefox node\033[0m"
@docker run -d \
--name firefox \
--network e2e_test_network \
-e HUB_PORT_4444_TCP_ADDR=selenium \
-e HUB_PORT_4444_TCP_PORT=4444 \
-e DBUS_SESSION_BUS_ADDRESS=/dev/null \
-v /dev/shm:/dev/shm \
selenium/node-firefox:$(SELENIUM_VERSION)
@sleep 3 && docker logs firefox
@echo "\033[1;92m-- OK\033[0m\n"
run: start-firefox-node start-chrome-node
@echo "\033[1;33mRunning E2E tests in chrome\033[0m"
@docker run \
-t \
--name e2e-test \
--network e2e_test_network \
-e LAUNCH_URL=$(LAUNCH_URL) \
-v `pwd`:/usr/app \
e2e_tests -e chrome,firefox
clean:
-@docker rm -f selenium chrome firefox e2e-test
-@docker network rm e2e_test_network
module.exports = {
src_folders: ['./tests'],
output_folder: './reports',
page_objects_path: './tests/pages',
live_output: true,
selenium: {
log_path: './reports',
},
test_settings: {
default: {
silent: true,
launch_url: process.env.LAUNCH_URL,
selenium_host: 'selenium',
desiredCapabilities: {
browserName: 'chrome',
javascriptEnabled: true,
acceptSslCerts: true,
},
screenshots: {
enabled: true,
on_failure: true,
path: './reports/screenshots',
}
},
chrome: {
desiredCapabilities: {
browserName: 'chrome',
chromeOptions: { args: ['disable-web-security', 'start-maximized'] },
},
},
firefox: {
desiredCapabilities: {
browserName: 'firefox',
marionette: true,
acceptInsecureCerts: true,
},
},
},
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment