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
;; gulp;
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.
;; gulp;
Running ES6 tests
gulp-electron-mocha
can pass --compilers
option to Mocha.
So just specify babel-core/register
to --compilers
.
gulp
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': truerenderer: trues: 200compilers: '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/)