gulp-electron-mocha v1.3.0
gulp-electron-mocha
Run client-side Mocha tests in Electron
This is a simple wrapper for electron-mocha.
The implementations are mostly inspired by gulp-mocha-phantomjs.
Installation
npm install --save-dev gulp-electron-mochaNote that you don't have to install either electron-mocha or electron-prebuilt globally (i.e. with npm i -g).
All dependencies are resolved automatically.
Basic Usage
import gulp from 'gulp';
import electronMocha from 'gulp-electron-mocha';
gulp.task('test', () =>
gulp.src('./test', { read: false })
.pipe(electronMocha())
);Please be aware that you should write gulp.src('./test'), not gulp.src('./test/*.js'),
because electron-mocha requires a directory to test.
You can also find working tests in test/ to learn how to make Gulp tasks and client-side Mocha tests with gulp-electron-mocha.
Passing additional options to electron-mocha
The electronMocha property of the optional argument to electronMocha()
is passed to electron-mocha.
Please see electron-mocha's docs to learn what parameters are available.
gulp-electron-mocha uses object-to-spawn-args
to convert from JavaScript object to command-line argument string.
import gulp from 'gulp';
import electronMocha from 'gulp-electron-mocha';
gulp.task('test', () =>
gulp.src('./test', { read: false })
.pipe(electronMocha({
electronMocha: {
renderer: true,
'no-timeout': true,
},
}))
);Running ES6 tests
gulp-electron-mocha can pass --compilers option to Mocha.
So just specify babel-core/register to --compilers.
gulp.src('./test', { read: false })
.pipe(electronMocha({
electronMocha: {
renderer: true,
compilers: 'js:babel-core/register',
'no-timeout': true,
},
}))API
electronMocha(options)
options
electronPath
Type Default stringundefinedA path to Electron in which tests are executed. If not specified,
gulp-electron-mochauses Electron innode_modules/by default.silent
Type Default boolfalseDon't throw an error even if one of the tests is failed.
suppressStdout
Type Default boolfalseDon't redirect electron-mocha's stdout to the console.
suppressStderr
Type Default boolfalseDon't redirect electron-mocha's stderr to the console.
electronMocha
Type Default Object{}Options to be passed to electron-mocha. See electron-mocha's docs for more details.
The value will be converted to command-line argument string with object-to-spawn-args.
For example, if you want to pass
--no-timeout --renderer -s 200 --compilers js:babel-core/register, specify:electronMocha: { 'no-timeout': true, renderer: true, s: 200, compilers: 'js:babel-core/register', }
Events
This plugin emits events named electronMochaStdoutData, electronMochaStdoutEnd, electronMochaStderrData,
electronMochaStderrEnd, electronMochaError, and electronMochaExit,
which are implemented by the following code:
electronMocha.stdout.on('data', stream.emit.bind(stream, 'electronMochaStdoutData'));
electronMocha.stdout.on('end', stream.emit.bind(stream, 'electronMochaStdoutEnd'));
electronMocha.stderr.on('data', stream.emit.bind(stream, 'electronMochaStderrData'));
electronMocha.stderr.on('end', stream.emit.bind(stream, 'electronMochaStderrEnd'));
electronMocha.on('error', stream.emit.bind(stream, 'electronMochaError'));
electronMocha.on('exit', stream.emit.bind(stream, 'electronMochaExit'));Tests
npm testContribution
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request :D
License
MIT License (http://nodaguti.mit-license.org/)