grunt-webdriver-qunit

grunt-webdriver-qunit is a grunt plugin to run qunit with webdriver in grunt

grunt-webdriver-qunit

run qunit with webdriver on grunt

This plugin requires Grunt ~0.4.1

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-webdriver-qunit --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-webdriver-qunit');

In your project's Gruntfile, add a section named webdriver_start to the data object passed into grunt.initConfig().

grunt.initConfig({
  webdriver_start: {
    options : {
      jar: '<selenium_jar_path>',
      port: '<selenium_port>',
      jvmArgs: '<jvm_args>',
      args: '<java_args>',
      env: '<environment>'
      stdio: '<stdio>'
    }
    },
})

Type: String Default value: null

The path of selenium server standalone jar.

Type: Integer Default value: 4444

The port of selenium server standalone.

Type: String Default value: null

The jvm arguments.

Type: String Default value: null

The java arguments.

Type: String Default value: null

The environment arguments.

Type: String Default value: null

In your project's Gruntfile, add a section named webdriver_qunit to the data object passed into grunt.initConfig().

grunt.initConfig({
  webdriver_qunit: {
    options: {
      reportsDir: '<reports_directory>',
      qunitJson: '<qunit_config>',
      baseUrl: '<base_url>',
      seleniumUrl: '<selenium_url>',
    },
    firefox: {
      options: {
        browserNames: '<browser_names>',
      }
    },
  },
})

Type: Array Default value: ['phantomjs']

The browser names, the value is the array of phantomjs, chrome, firefix, ie, safari.

Type: String Default value: target/surefire-reports

The reports directory.

Type: String Default value: null

The configuration file of qunit.

Type: String Default value: null

The base url of tests.

Type: String Default value: http://localhost:4444/wd/hub. If webdriver_start given, this option ignore, will using the local selenium to testing. Otherwise, will using the external selenium to testing.

The selenium url.

In this example, first start selenium server, then run qunit testing with webdriver. Please download chromedriver, phantomjs and IEDriverServer, SafariDriver then put them into PATH.

#Gruntfile.js
grunt.initConfig({
  webdriver_start: {
    options : {
      port: '4444',
    }
  },
  webdriver_qunit: {
    linux: {
      options: {
        browserNames: ['phantomjs', 'chrome', 'firefox', 'ie', 'safari'],
        reportsDir: 'target/surefire-reports',
        qunitJson: '../test/qunit.json',
        baseUrl: 'http://localhost:8000',
      }
    },
  },
  grunt.loadNpmTasks('grunt-webdriver-qunit');
  grunt.registerTask('test', ['webdriver_startup', 'webdriver_qunit']);
})
#qunit.json
{
  "baseUrl" : "http://localhost",
  "waitSeconds" : 10,
  "tests" : [{
    "path" : "/test/index.html",
    "waitSeconds" : 20
  }]
}

In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

  • 2013-10-12 v0.2.5 fix the download selenium bug.
  • 2013-10-12 v0.2.4 auto download selenium when install this plugin.
  • 2013-09-28 v0.2.3 support selenium grid.
  • 2013-09-28 v0.2.2 update selenium default jar path.
  • 2013-09-28 v0.2.1 fix document and upgrade plugin.
  • 2013-09-28 v0.2.0 add support external selenium.
  • 2013-07-05 v0.1.2 fix bug about timeout.
  • 2013-07-01 v0.1.1 update report path, make them same with test path.
  • 2013-07-01 v0.1.0 first release, test pass on linux and windows.
  • 2013-06-29 v0.0.4 initial this project.