A more robust tap-producing test harness for node and browsers.
Adds the following to tape without changing your normal workflow or adding globals:
- beforeEach()
- afterEach()
- better nested tests
Each beforeEach()
and afterEach()
will also be called for each child/nested test (similar to Mocha's nested suites)
npm install tapes --save-dev
var tape = require('tape');
var tapes = require('tapes');
var test = tapes(tape);
test('a set of some tests', function (t) {
// FINALLY!
t.beforeEach(function (t) {
// do some set up for each test
t.end();
});
t.afterEach(function (t) {
// do some tear down for each test
t.end();
});
t.test('testing something', function (t) {
t.ok(true, 'is true');
t.end();
});
// SWEET!
t.test('a nested set of tests', function (t) {
t.beforeEach(function (t) {
// Runs parent beforeEach() function as well as this one, in sequence.
t.end();
});
t.test('this inherits from the parent suite', function (t) {
t.ok(true, 'is true too');
t.end();
});
t.end();
});
t.end();
});
$ tapes test/**/*.js
or
$ node test/index.js
{
"name": "my-module",
"scripts": {
"test": "tapes test/**/*.js"
}
}
Initializer receives a tape
instance (versions 3.x and 4.x are acceptable). Returns test function.
Create a new tests, exactlty the same as tapes's test() command.
The callback is passed the normal instance of the Tape
class in order to create tests, setups and teardowns.
Do setup for the current test suite. The callback will be passed an object with and end()
method. This must be called to conclude the setup.
Do teardown for the current test suite. The callback will be passed an object with and end()
method. This must be called to conclude the teardown.
Create a new test within the current test. This method acts exactly like tape's normal test
method. Each of these nested tests also has availbe the beforeEach()
and afterEach()
functions.
All of tape's assertions are available. Please see tape's documentation for a complete list.
MIT