gulp-mocha
Run Mocha tests
Keep in mind that this is just a thin wrapper around Mocha and your issue is most likely with Mocha.
Maintainer needed
Install
$ npm install --save-dev gulp-mocha
Usage
const gulp = require('gulp');
const mocha = require('gulp-mocha');
gulp.task('default', () =>
gulp.src('test.js', {read: false})
.pipe(mocha({reporter: 'nyan'}))
);
If you are writing a watch task to run your tests as you modify your .js
files, be aware that you might run into issues. This plugin runs your Mocha tests within the same process as your watch task and state isn't reset between runs. If your tests eventually fail within the watch task but pass when run in a standalone task or with mocha test
, then you need to use the gulp-spawn-mocha
plugin.
API
mocha([options])
options
ui
Type: string
Default: bdd
Values: bdd
tdd
qunit
exports
Interface to use.
reporter
Type: string
Default: spec
Values: Reporters
Reporter that will be used.
This option can also be used to utilize third-party reporters. For example, if you npm install mocha-lcov-reporter
you can then do use mocha-lcov-reporter
as value.
globals
Type: Array
List of accepted global variable names, example ['YUI']
. Accepts wildcards to match multiple global variables, e.g. ['gulp*']
or even ['*']
. See Mocha globals option.
timeout
Type: number
Default: 2000
Test-case timeout in milliseconds.
bail
Type: boolean
Default: false
Bail on the first test failure.
ignoreLeaks
Type: boolean
Default: false
Ignore global leaks.
grep
Type: string
Only run tests matching the given pattern which is internally compiled to a RegExp.
require
Type: Array
Require custom modules before tests are run.
FAQ
Test suite not exiting
If your test suite is not exiting it might be because you still have a lingering callback, most often caused by an open database connection. You should close this connection or do the following:
gulp.task('default', () =>
gulp.src('test.js')
.pipe(mocha())
.once('error', () => {
process.exit(1);
})
.once('end', () => {
process.exit();
})
);
Babel
Add require('babel-core/register');
to the top of your gulpfile.js
. Make sure to read the Babel docs.
License
MIT © Sindre Sorhus