/wdio-cucumber-framework

A WebdriverIO plugin. Adapter for Cucumber testing framework.

Primary LanguageJavaScriptMIT LicenseMIT

WDIO Cucumber Framework Adapter

Build Status Code Climate Test Coverage dependencies Status


A WebdriverIO plugin. Adapter for CucumberJS testing framework.

Installation

The easiest way is to keep wdio-cucumber-framework as a devDependency in your package.json.

{
  "devDependencies": {
    "wdio-cucumber-framework": "~0.2.0"
  }
}

You can simple do it by:

npm install wdio-cucumber-framework --save-dev

Instructions on how to install WebdriverIO can be found here.

Install Cucumber

Note that cucumber is defined as a peer dependency so make sure it is installed in your project as well.

{
  "devDependencies": {
    "cucumber": "~1.2.0"
  }
}

You can simply do it by:

npm install cucumber --save-dev

Configuration

Following code shows the default wdio test runner configuration...

// wdio.conf.js
module.exports = {
  // ...
  framework: 'cucumber'
  cucumberOpts: {
    timeout: 10000
  }
  // ...
};

cucumberOpts Options

backtrace

Show full backtrace for errors.

Type: Boolean
Default: false

compiler

Require files with the given EXTENSION after requiring MODULE.

Type: String[]
Default: *[]*
Example: ['js:babel-core/register']

failFast

Abort the run on first failure.

Type: Boolean
Default: false

name

Only execute the scenarios with name matching the expression (repeatable).

Type: REGEXP[]
Default: []

snippets

Hide step definition snippets for pending steps.

Type: Boolean
Default: true

source

Hide source uris.

Type: Boolean
Default: true

profile

Specify the profile to use.

Type: String[]
Default: []

require

Require files/dir before executing features. If you apply a path don't use globbing as it is not supported by Cucumber. Instead just reference the directory where you step definitions are located (e.g. /path/to/definitions instead of /path/to/definitions/*).

Type: String[]
Default: []

snippetSyntax

Specify a custom snippet syntax.

Type: String
Default: undefined

strict

Fail if there are any undefined or pending steps

Type: Boolean
Default: false

tags

Only execute the features or scenarios with tags matching the expression. Note that untagged features will still spawn a Selenium session (see issue webdriverio/webdriverio#1247). The recommended way to specify a subset of feature files is to use suites. Using ['@t1,@t2'] will run scenarios tagged with @t1 OR @t2 whilst ['@t1', '@t2'] will run those with @t1 AND @t2.

Type: String[]
Default: []

timeout

Timeout in milliseconds for step definitions.

Type: Number
Default: 30000

ignoreUndefinedDefinitions

Please note that this is a wdio-cucumber-framework specifc option and not recognized by cucumber-js itself Treat undefined definitions as warnings.

Type: Boolean
Default: false

failAmbiguousDefinitions

Please note that this is a wdio-cucumber-framework specifc option and not recognized by cucumber-js itself Treat ambiguous definitions as errors.

Type: Boolean
Default: false

Development

All commands can be found in the package.json. The most important are:

Watch changes:

$ npm run watch

Run tests:

$ npm test

# run test with coverage report:
$ npm run test:cover

Build package:

$ npm build

For more information on WebdriverIO see the homepage.