THIS TASK IS NO LONGER SUPPORTED
This task does not work with the current stable grunt (0.4.0) and has been replaced by grunt-contrib-jasmine
grunt-jasmine-task
Grunt task for running jasmine specs.
Status: stable
Any timeout troubles with tests finishing before the injection of the grunt task files should be solved, if not please reopen #4.
Contact
You can contact me on twitter: @camillereynders
Getting Started
Make sure you got PhantomJS installed, which is a headless browser. Unfortunately PhantomJS cannot be installed automatically through grunt. See the grunt faq for installation instructions.
Install this grunt plugin next to your project's grunt.js gruntfile with: npm install grunt-jasmine-task
(ie. the plugin is installed locally. If you want to install it globally - which is not recommended - check out the official grunt documentation)
You also need to install the temporary
module
Although it is marked as a dependency in the grunt-jasmine-task
module and automatically is installed together with the jasmine plugin, for some reason it cannot be found, therefore it needs to be installed separately, either as a global or local module.
To install it locally do:
npm install temporary
Then add this line to your project's grunt.js
gruntfile at the bottom:
grunt.loadNpmTasks('grunt-jasmine-task');
Next you need to create (a) target(s) for the jasmine task.
If you want to run one file just add this to the grunt.initConfig
object
jasmine: {
all: ['specs/specrunner.html']
},
Obviously you need to replace specs/specrunner.html
with the location of your jasmine spec running html file.
Since v0.2.1: errorReporting
config option. ⚑
When errorReporting
is true
the failing spec description will be outputted to the console, even when run in non-verbose mode.
jasmine: {
all: {
src:['specs/specrunner.html'],
errorReporting: true
}
},
Since v0.2.0: timeout
config option.
By default the task will fail after 10 seconds of inactivity, however you can override this if you want:
jasmine: {
all: {
src:['specs/specrunner.html'],
timeout: 20000 //in milliseconds
}
},
This is useful for async assertions that may require more than 10 seconds to run.
Now you can run the jasmine task with:
grunt jasmine
When specs fail...
By default the jasmine task outputs in non-verbose mode, meaning it will output dots for passed specs and F's for failed ones.
You can see which spec is failing by running the task in verbose mode:
grunt jasmine -v
or (since v0.2.1) you can turn on reporting for failing specs even in non-verbose mode, see errorReporting config option
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.
More info on creating grunt plugins
Release History
- v0.2.3: solved timeout woes #4
- v0.2.2: removed grunt as a dependency
- v0.2.1: added
errorReporting
configuration option - v0.2.0: added
timeout
configuration option - v0.1.1: stable
- v0.1.0: broken
License
Copyright (c) 2012 Camille Reynders
Licensed under the MIT license.