A more robust tap-producing test harness for node and browsers. Adds suites, beforeEach, afterEach, etc.
JavaScript
Latest commit caa2b09 Apr 19, 2017 @scottcorgan committed on GitHub Merge pull request #17 from jaredsmith/master
Add MIT license file
Permalink
Failed to load latest commit information.
bin use latest version of tape Apr 1, 2015
test add some test Aug 1, 2016
.gitignore Initial commit Mar 17, 2014
LICENSE Add MIT license file Apr 19, 2017
README.md Update Mocha link Mar 12, 2017
index.js add custom delimiter Jul 31, 2016
package.json Merge pull request #13 from bySabi/add_tests Aug 1, 2016

README.md

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