0.5.4 • Published 8 years ago

grunt-nightwatch v0.5.4

Weekly downloads
195
License
MIT
Repository
github
Last release
8 years ago

Grunt meets Nightwatch.js

Build Status NPM version

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, 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.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.

0.5.4

8 years ago

0.5.3

8 years ago

0.5.2

9 years ago

0.5.1

9 years ago

0.5.0

9 years ago

0.4.8

9 years ago

0.4.7

9 years ago

0.4.6

9 years ago

0.4.5

9 years ago

0.4.4

9 years ago

0.4.3

9 years ago

0.4.2

9 years ago

0.4.1

9 years ago

0.4.0

9 years ago

0.3.2

9 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.4

10 years ago

0.2.3

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.1

10 years ago