Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/traviswimer/grunt-magic-mocha

Grunt task to run front-end mocha unit tests from the command line with no browser.
https://github.com/traviswimer/grunt-magic-mocha

Last synced: about 2 months ago
JSON representation

Grunt task to run front-end mocha unit tests from the command line with no browser.

Awesome Lists containing this project

README

        

# grunt-magic-mocha [![Build Status](https://travis-ci.org/traviswimer/grunt-magic-mocha.png?branch=master)](https://travis-ci.org/traviswimer/grunt-magic-mocha)

> Grunt task to run front-end mocha unit tests from the command line with no browser.

## Getting Started
This plugin requires [Grunt](http://gruntjs.com/) `~0.4.4` -- [Learn to use Grunt](http://gruntjs.com/getting-started)

Install the plugin with this command:

```shell
npm install grunt-magic-mocha --save-dev
```

Enable in your Gruntfile with:

```js
grunt.loadNpmTasks('grunt-magic-mocha');
```

> **NOTE:** If you get errors installing this module, it is probably caused by the `contextify` dependency of `jsDOM`. There is more information [here](https://github.com/tmpvar/jsdom#contextify).

>If you are using Linux, you may just need to update your version of `NodeJS`.
The most up-to-date version can be found [here](http://nodejs.org/). You will need to download the file, untar it and then run the following commands within the new directory:

```shell
./configure
make
sudo make install
```

## Quick setup

```js
grunt.initConfig({
magic_mocha: {
myTests: {
files: {
src: ['test/**/*_test.js']
}
}
}
});
```

## The "magic_mocha" task

### Overview
In your project's Gruntfile, add a section named `magic_mocha` to the data object passed into `grunt.initConfig()`.

```js
grunt.initConfig({
magic_mocha: {
myTestsWithOptions: {
options: {
globals: {
// Add the jQuery module to the window object
'$': 'jquery'
},
mochaOptions:{
// You should be able to include any mocha options here
reporter: "spec",
ui: "bdd"
}
},
files: {
src: ['test/**/*_test.js']
}
}
}
});
```

### Options

#### options.globals
Type: `object`

Specifies modules that should be attached to the global `window` variable.

#### options.mochaOptions
Type: `object`

Specifies any mocha options to be used. For more details, look throught the [Mocha documentation](http://mochajs.org/).

The following options are included by default:
* **reporter** - "spec"
* **ui** - "bdd"

## 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](http://gruntjs.com/).