/grunt-protractor-runner

A Grunt plugin for running protractor runner.

Primary LanguageJavaScriptMIT LicenseMIT

grunt-protractor-runner

A Grunt plugin for running Protractor runner.

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-protractor-runner --save-dev

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

grunt.loadNpmTasks('grunt-protractor-runner');

The "protractor" task

Overview

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

grunt.initConfig({
  protractor: {
    options: {
      configFile: "node_modules/protractor/referenceConf.js", // Default config file
      keepAlive: true, // If false, the grunt process stops when the test fails.
      args: {
        // Arguments passed to the command
      }
    },
    your_target: {
      configFile: "e2e.conf.js", // Target-specific config file
      options: {
        args: {} // Target-specific arguments
      }
    },
  },
})

Options

options.configFile

Type: String Default value: node_modules/protractor/referenceConf.js

A protractor config file.

options.keepAlive

Type: Boolean Default value: true

If true, grunt process continues even if the test fails. This option is useful when using with grunt watch. If false, grunt process stops when the test fails.

options.debug

Type: Boolean Default value: false

If true, grunt will pass 'debug' as second argument to protractor CLI to enable node CLI debugging as described in Protractor Debugging documentation.

options.args

Type: Object Default value: {}

Arguments passed to the command. Supported arguments are below.

  • seleniumAddress string: A running selenium address to use
  • seleniumServerJar string: Location of the standalone selenium server .jar file
  • seleniumPort string: Optional port for the standalone selenium server
  • baseUrl string: URL to prepend to all relative paths
  • rootElement string: Element housing ng-app, if not html or body
  • specs array: Array of spec files to test. Ex. ["spec1.js","spec2.js"]
  • includeStackTrace boolean: Print stack trace on error
  • verbose boolean: Print full spec names

Tests

After npm install, you need to run script node_modules/protractor/bin/install_selenium_standalone to download selenium to selenium/.

Then run grunt to test the module. If it runs fine and opens chrome a couple of times without warnings or errors, it means success although it prints 0 tests, 0 assertions, 0 failures.

Contributing

In lieu of a formal styleguide, 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

  • 0.1.4 - Change protractor(peerDependencies) to support version to 0.10.x - 0.11.x (#6)
  • 0.1.3 - Fixed Windows command
  • 0.1.2 - Added keepAlive option.