Grunt meets Nightwatch.js
Automatize your tests:
module { grunt; grunt;};
Write some tests:
tests/default/google-test.js
moduleexports = { browser assert ; };
Execute:
$ grunt nightwatch # target: default $ grunt nightwatch:A # target: A $ grunt nightwatch:A:B # targets: A, B
Options
Currently, grunt-nightwatch
supports the same options as nwrun can handle.
Note that the nighwatch.json file settings is fully supported, but your task options will override them if needed.
Gruntfile.js
module { grunt;};
CLI options
Since 0.5.0
, grunt-nightwatch
will pass grunt.cli.options
as the argv
option to nwrun
.
This means you can use grunt nightwatch:A:B --group foo --tag bar
directly on the CLI.
Known issues
When running in parallel Nightwatch will copy the process.argv
and it may produce bugs if you expect a single boolean argument like grunt nightwatch:A:B --standalone
.
It will spawn grunt nightwatch --standalone --env A
and the argv will be erroneously parsed as --standalone=--env
.
Targets
All options are the same as the main settings.
nightwatch: demo: /* see above */
Now you can execute grunt nightwatch:demo
to run your tests.
Note that your tests must be grouped together as follows: tests/<group>/test.js
Running tests with different browsers
nightwatch: options: // task options standalone: true // download settings jar_version: '2.53.0' jar_path: '../nightwatch/selenium-server-standalone-2.53.0.jar' // jar_url: 'http://domain.com/files/selenium-server-standalone-1.2.3.jar', src_folders: 'custom_tests/nightwatch' test_settings: phantom: "desiredCapabilities": "browserName": "phantomjs" "phantomjs.binary.path": "binaries/nightwatch/phantomjs.exe" firefox: "desiredCapabilities": "browserName": "firefox" chrome: "desiredCapabilities": "browserName": "chrome" "cli_args" : "webdriver.chrome.driver" : "binaries/nightwatch/chromedriver.exe"
This configuration allows you to run your tests against different browsers by calling grunt nightwatch:chrome
or grunt nightwatch:phantom
etc.