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.
minijasminenode comes in two flavors.
- minijasminenode runs Jasmine 1.3
- minijasminenode2 runs Jasmine 2.0
This is the branch for minijasminenode2. Switch to minijasminenode.
Note that there have been breaking changes between Jasmine 1.3.1 and Jasmine 2.0.
Notably, a different interface for reporters and custom matchers. Also, note that
per-spec timeouts (e.g. it('does foo', fn, 1000))
no longer work in Jasmine 2.0.
MiniJasmineNode 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
.
The module also contains a command line wrapper.
Get the library with
npm install minijasminenode2
Or, install globally
npm install -g minijasminenode2
If you install globally, you can use minijasminenode directly from the command line
minijasminenode2 mySpecFolder/mySpec.js
See more options
minijasminenode2 --help
// Your test file - mySpecFolder/mySpec.js
describe('foo', function() {
it('should pass', function() {
expect(2 + 2).toEqual(4);
});
});
var miniJasmineLib = require('minijasminenode2');
// 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);
If you want a custom runner instead of the default add it as an option into executeSpecs
var miniJasmineLib = require('minijasminenode2');
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
});
You can also pass an options object into executeSpecs
var miniJasmineLib = require('minijasminenode2');
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'],
// 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);
./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/minijn spec/*_spec.js