grunt-webdriver-qunit

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

npm install grunt-webdriver-qunit
28 downloads in the last week
30 downloads in the last month

grunt-webdriver-qunit Build Status

run qunit with webdriver on grunt

Getting Started

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');

The "webdriver_start" task

Overview

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>'
    }
    },
})

Options

options.jar

Type: String Default value: null

The path of selenium server standalone jar.

options.port

Type: Integer Default value: 4444

The port of selenium server standalone.

options.jvmArgs

Type: String Default value: null

The jvm arguments.

options.args

Type: String Default value: null

The java arguments.

options.env

Type: String Default value: null

The environment arguments.

options.stdio

Type: String Default value: null

The "webdriver_qunit" task

Overview

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>',
      }
    },
  },
})

options.browserNames

Type: Array Default value: ['phantomjs']

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

options.reportsDir

Type: String Default value: target/surefire-reports

The reports directory.

options.qunitJson

Type: String Default value: null

The configuration file of qunit.

options.baseUrl

Type: String Default value: null

The base url of tests.

options.seleniumUrl

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.

Usage Examples

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
  }]
}

Contributing

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.

Release History

  • 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.
npm loves you