README
WDIO Mocha Framework Adapter
A WebdriverIO plugin. Adapter for Mocha testing framework.
Installation
The easiest way is to keep @wdio/mocha-framework
as a devDependency in your package.json
, via:
npm install @wdio/mocha-framework --save-dev
Instructions on how to install WebdriverIO
can be found here.
Configuration
Following code shows the default wdio test runner configuration...
// wdio.conf.js
module.exports = {
// ...
framework: 'mocha',
mochaOpts: {
ui: 'bdd'
}
// ...
};
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.
Options mochaOpts
Options will be passed to the Mocha instance. See the list of supported Mocha options here.
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
:
wdio.conf.js
{
suites: {
login: ['tests/login/*.js']
},
mochaOpts: {
require: './hooks/mocha.js'
}
}
./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);
}
}
./tests/TEST-XXX.js
describe(() => {
it('Login form', function () => {
this.skip();
});
});
Output
TEST-XXX
✓ 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']
}
}
For more information on WebdriverIO see the homepage.