/tapes

A more robust tap-producing test harness for node and browsers. Adds suites, beforeEach, afterEach, etc.

Primary LanguageJavaScriptMIT LicenseMIT

tapes

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)

Install

npm install tapes --save-dev

Usage

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();
});

Running from the command line

$ tapes test/**/*.js

or

$ node test/index.js

Running from withing package.json

{
  "name": "my-module",
  "scripts": {
    "test": "tapes test/**/*.js"
  }
}

Methods

var test = tapes(tape)

Initializer receives a tape instance (versions 3.x and 4.x are acceptable). Returns test function.

test(name, callback)

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.

t.beforeEach(callback)

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.

t.afterEach(callback)

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.

t.test(name, callback)

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.

Assertions

All of tape's assertions are available. Please see tape's documentation for a complete list.

License

MIT