Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including wdio-mocha-framework with all npm packages installed. Try it out:

var wdioMochaFramework = require("wdio-mocha-framework")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

wdio-mocha-framework v0.6.4

A WebdriverIO plugin. Adapter for Mocha testing framework.

WDIO Mocha Framework Adapter

Build Status Code Climate Test Coverage Dependency Status

A WebdriverIO plugin. Adapter for Mocha testing framework.


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

  "devDependencies": {
    "wdio-mocha-framework": "~0.5.9"

You can simple do it by:

npm install wdio-mocha-framework --save-dev

Instructions on how to install WebdriverIO can be found here.


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

// wdio.conf.js
module.exports = {
  // ...
  framework: 'mocha',

  mochaOpts: {
    ui: 'bdd'
  // ...

mochaOpts Options

Options will be passed to the Mocha instance. See the list of supported Mocha options here.

Note that interfaces supported are bdd, tdd and qunit. If you want to provide a custom interface, it should expose methods compatible with them and be named ending with -bdd, -tdd or -qunit accordingly.

mochaOpts.require (string|string[])

The require option is useful when you want to add or extend some basic functionality.
For example, let's try to create an anonymous describe:


  suites: {
    login: ['tests/login/*.js']

  mochaOpts: {
    require: './hooks/mocha.js'


import path from 'path';

let { context, file, mocha, options } = module.parent.context;
let { describe } = context;

context.describe = function (name, callback) {
    if (callback) {
        return describe(...arguments);
    } else {
        callback = name;
        name = path.basename(file, '.js');

        return describe(name, callback);


describe(() => {
    it('Login form', () => {


   ✓ Login form

mochaOpts.compilers (string[])

Use the given module(s) to compile files. Compilers will be included before requires.

CoffeeScript and similar transpilers may be used by mapping the file extensions and the module name.

  mochaOpts: {
    compilers: ['coffee:foo', './bar.js']


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.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free