grunt-nightwatch v0.5.4
Grunt meets Nightwatch.js
Automatize your tests:
module.exports = function(grunt) {
grunt.initConfig({
nightwatch: {
options: { /* see below */ }
}
});
grunt.loadNpmTasks('grunt-nightwatch');
};Write some tests:
tests/default/google-test.js
module.exports = {
'Demo test Google': function(browser) {
browser
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'nodejs')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]').pause(1000)
.assert.containsText('#ires', 'joyent/node')
.end();
}
};Execute:
$ grunt nightwatch # target: default
$ grunt nightwatch:A # target: A
$ grunt nightwatch:A:B # targets: A, BOptions
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.exports = function(grunt) {
grunt.initConfig({
nightwatch: {
options: {
// task options
standalone: true,
// download settings
jar_version: '2.44.0',
jar_path: '/opt/selenium/server.jar',
jar_url: 'http://domain.com/files/selenium-server-standalone-1.2.3.jar',
// nightwatch settings
globals: { foo: 'bar' },
globals_path: 'custom_tests/globals',
custom_commands_path: 'custom_tests/helpers',
custom_assertions_path: 'custom_tests/asserts',
src_folders: ['custom_tests/nightwatch'],
output_folder: 'report',
test_settings: {},
selenium: {}
},
custom: {
// custom target + overrides
config_path: '/path/to/file.json',
src_folders: ['other_tests/nightwatch']
}
}
});
};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.
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago

