# grunt-simple-mocha

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][johnkpaul_gist].

If you're looking to run client-side specs with PhantomJS, you might be
interested in [grunt-mocha][othermocha].

### Updating from 0.2.x to 0.3.x

This task now depends on grunt 0.4.x. Please see the
[grunt 0.3 to 0.4 migration guide][migration_guide] for more details.

## Installation
1. Install this grunt plugin next to your project's
   [Gruntfile.js][getting_started] with:
   ```javascript
   npm install grunt-simple-mocha --save-dev
   ```

2. Then add this line to your project's `grunt.js` gruntfile:
   ```javascript
   grunt.loadNpmTasks('grunt-simple-mocha');
   ```

## Usage

In your grunt.js:

```javascript
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'] }
  }
});

// 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!

## Running tests

Run `npm install && npm test`

## Contributing
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][grunt_github].

## Migration Guides

### Updating from 0.2.x to 0.3.x

This task now depends on grunt 0.4.x. Please see the
[grunt 0.3 to 0.4 migration guide][migration_guide] for more details.

### Updating from 0.1.x to 0.2.x

If you were using 0.1.x, the task name has changed from `mocha` to
`simplemocha` to avoid confusion with [grunt-mocha][othermocha]. Please make
sure your grunt.js file is updated. See [#3][issue3].  

## Release History

* v0.1 - Woo!
* v0.2 - Changed the task name from `mocha` to `simplemocha`. See [#3][issue3].
* 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.

## License
Copyright (c) 2012 Mukund Lakshman

Licensed under the MIT license.

[getting_started]: https://github.com/cowboy/grunt/blob/master/docs/getting_started.md
[johnkpaul_gist]: https://gist.github.com/2361303
[grunt_github]: http://github.com/cowboy/grunt
[issue3]: https://github.com/yaymukund/grunt-simple-mocha/issues/3
[othermocha]: https://github.com/kmiyashiro/grunt-mocha
[migration_guide]: https://github.com/gruntjs/grunt/wiki/Upgrading-from-0.3-to-0.4
