better-tape

1.1.0 • Public • Published

better-tape

better-tape is intended to be an extension pack with the much requested features that are missing in tape. Here is a 10 minute read on why one should pick tape over mocha.

Following are the features that are currently supported

  • Support for before(handle) to provide start-up hook
  • Support for after(handle) to provide clean-up hook
  • Full support for adding the above lifecycle hooks at all levels of a nested test suite

Install

npm i better-tape --save-dev

Usage

This is a fork of tape, please refer to tape README for complete documentation

You always need to require('better-tape) in your test files. You can run the tests using better-tape binary to utilize globbing, for example

$ better-tape tests/**/*.js

Example

Using before and after hooks at top level

const test = require('beter-tape');

test.before((handle) => {
    console.log(`\n>> INSIDE before`);
    handle.end();
});

test.after((handle) => {
    console.log(`>> INSIDE after\n`);
    handle.end();
});

test('Test 1', (t) => {
    t.pass('Executing Test 1');
    t.end();
});

test('Test 2', (t) => {
    t.pass('Executing Test 2');
    t.end();
});

Output

TAP version 13
# Subtest: test/sample.js
    # Test 1

    >> INSIDE before
    ok 1 Executing Test 1
    >> INSIDE after

    # Test 2

    >> INSIDE before
    ok 2 Executing Test 2
    >> INSIDE after

    1..2
    # tests 2
    # pass  2

    # ok

ok 1 - test/sample.js # time=109.678ms

1..1
# time=122.405ms

Using before and after hooks with nested test cases

const test = require('better-tape');

test.before((handle) => {
    console.log(`\n>> INSIDE before`);
    handle.end();
});

test.after((handle) => {
    console.log(`>> INSIDE after\n`);
    handle.end();
});

test('Suite 1', (suite) => {
    suite.before((handle) => {
        console.log(`\n\t >>>> INSIDE NESTED before`);
        handle.end();
    });

    suite.after((handle) => {
        console.log(`\t >>>> INSIDE NESTED after\n`);
        handle.end();
    });

    suite.test('Nested test 1', (t) => {
        t.pass('Executing Nested Test 1');
        t.end();
    });

    suite.test('Nested test 2', (t) => {
        t.pass('Executing Nested Test 2');
        t.end();
    });
});

Output

TAP version 13
# Subtest: test/sample.js
    # Suite 1

    >> INSIDE before
    # Nested test 1

    	 >>>> INSIDE NESTED before
    ok 1 Executing Nested Test 1
    	 >>>> INSIDE NESTED after

    # Nested test 2

    	 >>>> INSIDE NESTED before
    ok 2 Executing Nested Test 2
    	 >>>> INSIDE NESTED after

    >> INSIDE after

    1..2
    # tests 2
    # pass  2

    # ok

ok 1 - test/sample.js # time=102.496ms

1..1
# time=115.107ms

LICENCE

Copyright of large portions of project better-tape are held by James Halliday as part of project tape. All other copyright for project is under MIT license.

Dependencies (13)

Dev Dependencies (6)

Package Sidebar

Install

npm i better-tape

Weekly Downloads

1

Version

1.1.0

License

MIT

Last publish

Collaborators

  • i2infinity