minijasminenode23
v2.0.0
Published
minijasminenode with Jasmine node 2.3 and grunt support
Downloads
19
Readme
minijasminenode23
minijasminenode
with Jasmine version 2.4 under the hood.
Original fork from juliemr with an initial update from xdissent to use Jasmine 2.1 (which has since been updated to 2.4).
Based on Jasmine-Node, but minus the fancy stuff. This node.js module makes Pivotal Lab's Jasmine (http://github.com/pivotal/jasmine) spec framework available in node.js or via the command line.
features
MiniJasmineNode23 exports a library which
- places Jasmine in Node's global namespace, similar to how it's run in a browser.
- adds result reporters for the terminal.
- adds the ability to load tests from file.
- adds focused specs with
iit
andddescribe
. - adds
xdescribe
,fdescribe
,xit
,fit
,beforeEach
,afterEach
,beforeAll
,afterAll
- specification of spec file locations are
glob
-able
The module also contains a command line wrapper.
installation
Get the library with
npm install minijasminenode23
Or, install globally
npm install -g minijasminenode23
If you install globally, you can use minijasminenode directly from the command line
minijasminenode23 mySpecFolder/mySpec.js
See more options
minijasminenode23 --help
usage
// Your test file - mySpecFolder/mySpec.js
describe('foo', function() {
it('should pass', function() {
expect(2 + 2).toEqual(4);
});
});
var miniJasmineLib = require('minijasminenode23');
// At this point, jasmine is available in the global node context.
// Add your tests by filename.
miniJasmineLib.addSpecs('myTestFolder/mySpec.js');
// If you'd like to add a custom Jasmine reporter, you can do so. Tests will
// be automatically reported to the terminal.
miniJasmineLib.addReporter(myCustomReporter);
// Run those tests!
miniJasmineLib.executeSpecs(options);
You can also pass an options object into executeSpecs
var miniJasmineLib = require('minijasminenode23');
var options = {
// An array of filenames, relative to current dir. These will be
// executed, as well as any tests added with addSpecs()
specs: ['specDir/mySpec1.js', 'specDir/mySpec2.js', 'specDir/**/*.spec.js'],
// A function to call on completion.
// function(passed)
onComplete: function(passed) { console.log('done!'); },
// If true, display suite and spec names.
isVerbose: false,
// If true, print colors to the terminal.
showColors: true,
// If true, include stack traces in failures.
includeStackTrace: true,
// Time to wait in milliseconds before a test automatically fails
defaultTimeoutInterval: 5000
};
miniJasmineLib.executeSpecs(options);
If you want a custom runner instead of the default add it as an option into executeSpecs
var miniJasmineLib = require('minijasminenode23');
var myCustomReporter = require('myCustomReporter');
// At this point, jasmine is available in the global node context.
// Add your tests by filename.
miniJasmineLib.addSpecs('myTestFolder/mySpec.js');
// Run those tests!
miniJasmineLib.executeSpecs({
reporter: myCustomReporter
});
Grunt Task
A Grunt
task is included, called jasmine23
:
module.exports = function(grunt) {
grunt.loadNpmTasks('minijasminenode23')
grunt.initConfig({
jasmine23: {
dev: {
// Standard options apply here
options: {
// An array of filenames, relative to current dir. These will be
// executed, as well as any tests added with addSpecs()
specs: ['test/unit/**/*.spec.js'],
// A function to call on completion.
// function(passed)
onComplete: function(passed) { console.log('done!') },
// If true, display suite and spec names.
isVerbose: true,
// If true, print colors to the terminal.
showColors: true,
// If true, include stack traces in failures.
includeStackTrace: true,
// Time to wait in milliseconds before a test automatically fails
defaultTimeoutInterval: 5000
}
}
}
})
grunt.registerTask('default', ['jasmine23:dev'])
to run the tests
./specs.sh
This will run passing tests as well as show examples of how failures look. To run only passing tests, use npm test
or ./bin/minijasminenode23 spec/*_spec.js