grunt-grover
Version:
A grunt task to run yui tests with grover
193 lines (135 loc) • 5.01 kB
Markdown
# grunt-grover [](https://travis-ci.org/MarshallOfSound/grunt-grover)
> A grunt task to run yui tests with grover
## Getting Started
This plugin requires Grunt `~0.4.5`
If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
```shell
npm install grunt-grover --save-dev
```
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
```js
grunt.loadNpmTasks('grunt-grover');
```
## The "grover" task
### Overview
In your project's Gruntfile, add a section named `grover` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
grover: {
default: {
options: {
// Task-specific options go here.
}
}
},
});
```
### Options
#### options.path
*Required*
Type: `String`
A glob format path to your YUI test files. E.g. `'test/js/*.html'`
#### options.cwd
Type: 'String'
The path on which to execute the grover command
#### options.concurrent
Type: `Number`
Default value: `15`
Number of tests to run concurrently
#### options.logLevel
Type: `Number`
Default value: `2`
Level of logging --
`2`: All output
`1`: Only error output
`0`: No output
#### options.failOnFirst
Type: `Boolean`
Default value: `false`
Fail on the first error
#### options.timeout
Type: `Number`
Time in seconds, after which to consider a test failed
#### options.import
Type: `String`
Path to a JS file to include and use the export (an array) as the list of files to process
#### options.prefix
Type: `String`=
String to prefix all server URL's with (for dynamic server names)
#### options.suffix
Type: `String`
String to append to all server URL's (for dynamic server names)
#### options.outfile
Type: `String`
Path to a file to output the test results to, if the file does not exist it will be created for you
The output type can be set with the `options.outtype` setting
#### options.outtype
Type: `String`
Default value: `tap`
The format for the test results output file, it can be:
`tap`: TAP export
`xml`: XML export
`json`: JSON export
`junit`: JUnit XML export
#### options.server
Type: `Boolean`
Default value: `false`
Starts a static file server in the CWD, tests should be relative to this directory
#### options.port
Type: `Number`
Default value: `8000`
Port number to start the static file server on
#### options['phantom-bin']
Type: `String`
Default value: `Searches for phantomjs in the node_modeuls directory`
Path to phantomjs if you don't want to use the node intergrated version
#### options['no-run']
Type: `Boolean`
Default value: `false`
Do not run the tests, just prep the server (used for other testing)
### Coverage Options
Coverage options are stored in a `optiones.coverage` object. For coverage to work you must instument your own files with istanbul.
#### options.coverage.on
Type: `Boolean`
Default value: `false`
Generate a coverage report and print it to the screen
#### options.coverage.warn
Type: `Number`
Default value: `80`
Level of coverage to throw a Grunt warning at
#### options.coverage.istanbul
Type: `String`
Path to output a istanbul coverage report to, must be an empty directory. If the directory does not exist it will be created for you
#### options.coverage.reportFile
Type: `String`
Path to output a basic coverage report file to, the file will be in a `lcov` format. If the file does not exist it will be created for you.
#### options.coverage.sourcePrefix
Type: `String`
The relative path to the original source file for use in the coverage results.
### Usage Examples
#### Basic Options
In this example, basic options are setup to run yui test on all files in the `test/js` directory with full logging turned on. A test report will be created at `reports/grover.tap` and coverage information will appear in the console.
```js
grunt.initConfig({
grover: {
default: {
options: {
path: 'test/js/*.html',
logLevel: 2,
concurrent: 15,
outfile: 'reports/grover.tap',
outtype: 'tap',
coverage: {
on: true
}
}
}
},
});
```
## 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/).
## Release History
**0.1.0: ** *15/02/2015*
**0.2.3: ** *5/08/2015*
**0.2.4: ** *28/9/2015*