Run Mocha tests
Keep in mind that this is just a thin wrapper around Mocha and your issue is most likely with Mocha.
$ npm install --save-dev gulp-mocha
const gulp = require('gulp');
const mocha = require('gulp-mocha');
gulp.task('default', () => {
return gulp.src('test.js', {read: false})
// gulp-mocha needs filepaths so you can't have any plugins before it
.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 withmocha test
, then you need to use thegulp-spawn-mocha
plugin.
Type: string
Default: bdd
Values: bdd
, tdd
, qunit
, exports
The interface to use.
Type: string
Default: spec
| dot
prior to mocha v1.21.0
Values: reporters
The 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.
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.
Type: number
Default: 2000
Test-case timeout in milliseconds.
Type: boolean
Default: false
Bail on the first test failure.
Type: boolean
Default: false
Ignore global leaks.
Type: string
Only run tests matching the given pattern which is internally compiled to a RegExp.
Type: array
Require custom modules before tests are run.
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', () => {
return gulp.src('test.js')
.pipe(mocha())
.once('error', () => {
process.exit(1);
})
.once('end', () => {
process.exit();
});
});
Add require('babel-core/register');
to the top of your gulpfile.js
. Make sure to read the Babel docs.
MIT © Sindre Sorhus