grunt-se-runner

1.2.0 • Public • Published

grunt-se-runner

Grunt task for se-runner

Getting Started

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

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

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

NPM package

SeRunner task

Run this task with the grunt seRunner command.

Overview

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

grunt.initConfig({
  seRunner: {
    options: {
      // Task-specific options go here.
    },
    your_target: {
      // Target-specific file lists and/or options go here.
    },
  },
});

Options

capabilities

Type: Array Default value: []

A list of WebDriver capabilities to start on the Selenium hub.

concurrency

Type: Number Default value: 1

Number of concurrent processes that will be run.

context

Type: Object Default value: {}

Any values specified here will be added to the context that is passed into each test suite.

dependencies

Type: Array Default value: []

A list of dependencies to load before running the tests.

driverFactory.create

Type: Function Default value: See example below

Provides a way to change how the WebDriver is instantiated or switch to a different WebDriver implementation. This function will be passed into a separate process and as such can contain no references to a different scope than its own. You can however use the Node.Js require() function inside of the driverFactory.create function. It will also be bound to the configuration object so you will have access to any values in there through the this property.

framework

Type: String Default value: jasmine

Which test framework to use. The test runner will load the framework adaptor: se-runner-framework-[Framework]. All framework adaptors need to be installed separately.

logLevel

Type: String Default value: INFO

Possible values are: NONE, ERROR, WARNING, INFO & DEBUG.

tests

Type: Array Default value: []

A list of files or globbing patterns to find tests to be run.

timeout

Type: Number Default value: 60000

Default timeout in milliseconds. This value will also be passed to the framework adaptor (if not overridden in the framework specific configuration).

selenium.hub

Type: String Default value: http://hub.browserstack.com/wd/hub

Url to the Selenium Hub to connect to.

[framework]

Type: Object Default value: {}

Any values given here will be passed into the framework adaptor.

[framework].consoleReporter

Type: Boolean Default value: true

Whether the framework adaptor should report to the console as things are happening or not.

[framework].dependencies

Type: Array Default value: []

A list of dependencies for the framework adaptor to load before running the tests.

[framework].timeout

Type: Number Default value: 60000

Overrides the default timeout for the framework adaptor only.

Usage Examples

SeRunner BrowserStack Example

For a full, ready to run, example using se-runner with grunt-se-runner and se-runner-framework-jasmine, see se-runner-browserstack-example.

Options

grunt.initConfig({
  seRunner: {
    options: {
        capabilities: [],
        context: {},
        dependencies: [],
        driverFactory: {
            create: function (capabilities) {
                return new (require('selenium-webdriver')).Builder()
                                .usingServer(this.selenium.hub)
                                .withCapabilities(capabilities)
                                .build();
            }
        },
        framework: 'jasmine',
        logLevel: 'INFO',
        tests: [],
        timeout: 60000,
        selenium: {
            hub: 'http://hub.browserstack.com/wd/hub'
        },
        jasmine: {
            consoleReporter: true,
            dependencies: [],
            timeout: 60000
        }
    }
  }
});

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

  • 2017-04-13 v1.2.0 Output total SeRunner execution time.
  • 2017-04-11 v1.1.3 Update SeRunner dependency to 1.2.3.
  • 2017-04-10 v1.1.2 Update SeRunner dependency to 1.2.2 and added link in README to se-runner-browserstack-example.
  • 2017-04-10 v1.1.1 Update SeRunner dependency to 1.2.1.
  • 2016-12-09 v1.1.0 Indicate grunt success/failure based on result from SeRunner.
  • 2016-06-13 v1.0.1 Fixed peerDependencies.
  • 2016-05-10 v1.0.0 Initial version.

Package Sidebar

Install

npm i grunt-se-runner

Weekly Downloads

1

Version

1.2.0

License

WTFPL-2.0

Last publish

Collaborators

  • hyddan