gulp-electron-mocha
v1.3.0
Published
Gulp plugin to run Mocha tests in Electron
Downloads
51
Readme
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-mocha
Note 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 | |:----:|:----:| |
string
|undefined
|A path to Electron in which tests are executed. If not specified,
gulp-electron-mocha
uses Electron innode_modules/
by default.silent
| Type | Default | |:----:|:----:| |
bool
|false
|Don't throw an error even if one of the tests is failed.
suppressStdout
| Type | Default | |:----:|:----:| |
bool
|false
|Don't redirect electron-mocha's stdout to the console.
suppressStderr
| Type | Default | |:----:|:----:| |
bool
|false
|Don'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 test
Contribution
- 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/)