Skip to content

misogl/gulp-mocha

 
 

Repository files navigation

gulp-mocha Build Status

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

The interface to use.

reporter

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.

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

About

Run Mocha tests

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%