A simple wrapper for running tests with Mocha. It's pretty much a cleaned up and plugin-ized version of this helpful Gist by johnkpaul.
If you're looking to run client-side specs with PhantomJS, you might be interested in grunt-mocha.
-
Install this grunt plugin next to your project's Gruntfile.js with:
npm install grunt-simple-mocha --save-dev
-
Then add this line to your project's
grunt.js
gruntfile:grunt.loadNpmTasks('grunt-simple-mocha');
In your Gruntfile.js:
grunt.initConfig({
simplemocha: {
all: {
src: ['test/**/*.js', '**/*.spec.js']
}
}
});
// For this to work, you need to have run `npm install grunt-simple-mocha`
grunt.loadNpmTasks('grunt-simple-mocha');
// Add a default task. This is optional, of course :)
grunt.registerTask('default', 'simplemocha');
Now, you can just run grunt simplemocha
in your shell to run the tests. That's it!
All options
parameters are passed directly to Mocha. Therefore, you can use these options to configure how Mocha runs.
ui
name "bdd", "tdd", "exports" etcreporter
reporter instance, defaults tomocha.reporters.spec
globals
array of accepted globalstimeout
timeout in millisecondsretries
number of times to retry failed testsbail
bail on the first test failureslow
milliseconds to wait before considering a test slowignoreLeaks
ignore global leaksfullTrace
display the full stack-trace on failinggrep
string or regexp to filter tests with
The Gruntfile configuration would look like this:
grunt.initConfig({
simplemocha: {
//
// These are passed directly to the mocha constructor. See:
// https://github.com/mochajs/mocha/blob/master/lib/mocha.js#L56-L74
//
options: {
ui: 'bdd',
reporter: 'tap',
globals: ['window','document','$','should'],
timeout: 3000,
retries: 2,
bail: false,
slow: 2000,
ignoreLeaks: false,
fullTrace: true
grep: 'users',
},
all: { src: ['test/**/*.js'] }
}
});
Run npm install && npm test
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.
This task now depends on grunt 0.4.x. Please see the grunt 0.3 to 0.4 migration guide for more details.
If you were using 0.1.x, the task name has changed from mocha
to
simplemocha
to avoid confusion with grunt-mocha. Please make
sure your grunt.js file is updated. See #3.
- v0.1 - Woo!
- v0.2 - Changed the task name from
mocha
tosimplemocha
. See #3. - v0.3 - Updated to support grunt 0.4.x.
- v0.4 - Updated to support node 0.10.x.
- v0.4.1 - Updated readme and added tests.
Copyright (c) 2012 Mukund Lakshman
Licensed under the MIT license.