node package manager

gulp-mocha

Run Mocha tests

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


🔥 Want to strengthen your core JavaScript skills and master ES6?
I would personally recommend this awesome ES6 course by Wes Bos.


$ npm install --save-dev gulp-mocha
const gulp = require('gulp');
const mocha = require('gulp-mocha');
 
gulp.task('default', () => 
    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 with mocha test, then you need to use the gulp-spawn-mocha plugin.

Type: string
Default: bdd
Values: bdd tdd qunit exports

Interface to use.

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.

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', () => 
    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