grunt-node-qunit
A Grunt task for running node-qunit
Grunt is a task-based command line build tool for JavaScript projects, based on nodejs. Node-Qunit is a Qunit testing framework for nodejs QUnit is a powerful, easy-to-use JavaScript unit test suite used by the jQuery, jQuery UI and jQuery Mobile projects and is capable of testing any generic JavaScript code, including itself!
The Grunt Node-Qunit task is a wrapper for the node-qunit task to be used in grunt. The parameters used are the exact parameters used with the node-quit package.
How is this different from grunt-nodeunit
Grunt NodeUnit task uses the nodeunit testing framework. The syntax is slightly different and uses the node-qunit. The syntax for this task is exactly like the qunit syntax.
#Usage
This task is available as a node package and can be installed as npm install grunt-node-qunit
. It can also be included as a devDependency in package.json in your node project.
To use the task in grunt.js
, load the npmTask.
grunt.loadNpmTasks('grunt-node-qunit');
__Note that this is NOT a multi task. Node-Qunit is used via the API, as described here.
The parameters are
- setup : An object passed to qunit.setup
- deps : define dependencies, which are required then before code, passed in qunit.run()
- code : define the code that needs to be tested
- tests: define the test files
- callback : A callback that is called everytime a qunit test for a page is complete. Runs per page, per browser configuration. A true or false return value passes or fails the test, undefined return value does not alter the result of the test. For async results, call
this.async()
in the function. The return ofthis.async()
is a function that should be called once the async action is completed.
#Example
Inside the grunt.initConfig, add a section
grunt.initConfig({
//....
'node-qunit': {
deps: './src/pouch.js',
code: './src/adapters/pouch.leveldb.js',
tests: testFiles.map(function(n){
return "./tests/" + n;
}),
callback: function(err, res){
!err && publishResults("node", res, this.async());
}
},
// ....
}); // end of grunt.initConfig
// Elsewhere in the grunt file grunt.loadNpmTasks('grunt-node-qunit');