Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sindresorhus/gulp-mocha
Run Mocha tests
https://github.com/sindresorhus/gulp-mocha
gulp-plugin javascript mocha nodejs test-runner
Last synced: 1 day ago
JSON representation
Run Mocha tests
- Host: GitHub
- URL: https://github.com/sindresorhus/gulp-mocha
- Owner: sindresorhus
- License: mit
- Created: 2013-12-14T23:50:56.000Z (about 11 years ago)
- Default Branch: main
- Last Pushed: 2024-04-19T21:08:55.000Z (8 months ago)
- Last Synced: 2024-10-29T15:18:19.774Z (about 2 months ago)
- Topics: gulp-plugin, javascript, mocha, nodejs, test-runner
- Language: JavaScript
- Size: 102 KB
- Stars: 375
- Watchers: 13
- Forks: 91
- Open Issues: 11
-
Metadata Files:
- Readme: readme.md
- License: license
- Security: .github/security.md
Awesome Lists containing this project
README
# gulp-mocha
> Run [Mocha](https://github.com/mochajs/mocha) tests
*Keep in mind that this is just a thin wrapper around Mocha and your issue is most likely with Mocha.*
## Install
```sh
npm install --save-dev gulp-mocha
```## Usage
```js
import gulp from 'gulp';
import mocha from 'gulp-mocha';export default () => (
gulp.src('test.js', {read: false})
// `gulp-mocha` needs file paths so you cannot have any plugins before it.
.pipe(mocha({reporter: 'nyan'}))
);
```## API
### mocha(options?)
#### options
Type: `object`
Options are passed directly to the `mocha` binary, so you can use any its [command-line options](http://mochajs.org/#usage) in a camelCased form. Arrays and key/value objects are correctly converted to the comma separated list format Mocha expects. Listed below are some of the more commonly used options:
##### ui
Type: `string`\
Default: `'bdd'`\
Values: `'bdd' | 'tdd' | 'qunit' | 'exports'`The interface to use.
##### reporter
Type: `string`\
Default: `spec`\
Values: [Reporters](https://github.com/mochajs/mocha/tree/master/lib/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.
##### reporterOptions
Type: `object`\
Example: `{reportFilename: 'index.html'}`Reporter specific options.
##### globals
Type: `string[]`
List of accepted global variable names, example `['YUI']`. Accepts wildcards to match multiple global variables, e.g. `['gulp*']` or even `['*']`. See [Mocha globals option](http://mochajs.org/#globals-option).
##### timeout
Type: `number`\
Default: `2000`Test-case timeout in milliseconds.
##### bail
Type: `boolean`\
Default: `false`Bail on the first test failure.
##### checkLeaks
Type: `boolean`\
Default: `false`Check for global variable leaks.
##### grep
Type: `string`
Only run tests matching the given pattern which is internally compiled to a RegExp.
##### require
Type: `string[]`
Require custom modules before tests are run.
##### compilers
Type: `string`\
Example: `js:babel-core/register`Specify a compiler.
## 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:
```js
export default () => (
gulp.src('test.js')
.pipe(mocha())
.once('error', err => {
console.error(err);
process.exit(1);
})
.once('end', () => {
process.exit();
})
);
```Or you might just need to pass the `exit` option:
```js
export const test = () => (
gulp.src(['test/**/*.js'], {read: false})
.pipe(mocha({reporter: 'list', exit: true}))
.on('error', console.error)
);
```