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'
}
// ...
};
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.
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', () => {
this.skip();
});
});
Output
TEST-XXX
✓ Login form
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']
}
}
First of all,
npm i
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 run build
For more information on WebdriverIO see the homepage.