Tape
Tape is a free, MIT-licensed test harness for Node.js and web browsers.
What Tape is
Tape is a free, MIT-licensed test harness for Node.js and web browsers. It runs tests through Node.js or the tape command-line binary, which supports file globbing, and emits TAP version 13 output with test names, assertion results, and a summary. Its assertion API covers truthiness, equality, deep equality, exceptions, and pattern matching. Test callbacks can return promises, and explicit planning and timeout methods support asynchronous tests. Tape keeps its core minimal, with companion modules such as tap-spec, tap-json, and tap-junit available for TAP formatting and reporting. By default, uncaught exceptions in tests are not intercepted and cause Tape to crash; tape-catch is suggested for reporting them as TAP errors. The README gives npm install tape --save-dev for installation. The --no-only option makes a run fail when a .only test remains. The repository security page reports no published security advisories and directs vulnerability reports to @ljharb or Tidelift.
Good
- Runs in Node.js and web browsers
- TAP version 13 output
- Promise-based asynchronous tests
- Multiple assertion types
- MIT licensed and open source
Watch out
- Uncaught exceptions crash by default
- Additional features rely on modules
- No parallel execution
Who it suits
Tape suits JavaScript developers writing tests for Node.js or browser code who want TAP output. It is useful when a small core and separate reporting modules fit the project.
Verdict
Tape provides a focused test runner with standard TAP output and broad basic assertions. Teams should account for its minimal core and explicitly handle uncaught exceptions.
The facts
Each one read from Tape's own pages, with the date it was checked.
What it does
- Assertions
- Its assertion methods include truthy, equality, deep equality, exception, and pattern-matching assertions.checked 9 Oct 2026
- Async tests
- Tape implicitly awaits a test callback that returns a Promise and fails the test if that Promise rejects.checked 9 Oct 2026
- CI option
- The `--no-only` option makes a test run fail if a `.only` test is present.checked 9 Oct 2026
- Extensibility
- Tape describes its core as minimal and says additional features are usually added through other modules.checked 4 Oct 2026
- Install
- The README recommends installing Tape with `npm install tape --save-dev`.checked 9 Oct 2026
- Installation
- The README gives `npm install tape --save-dev` as the installation command.checked 4 Oct 2026
- Integrations
- The README lists companion modules for TAP reporters, including tap-spec, tap-dot, faucet, tap-json, and tap-xunit.checked 9 Oct 2026
- License
- The repository identifies Tape's license as MIT.checked 9 Oct 2026
- Minimal core
- The README describes Tape as having a minimal core and says additional features are usually added with other modules.checked 9 Oct 2026
- Notable limitation
- By default, uncaught exceptions in tests are not intercepted and cause Tape to crash.checked 4 Oct 2026
- Purpose
- Tape is a TAP-producing test harness for Node.js and browsers.checked 9 Oct 2026
- Security
- The repository links a security policy, but the opened policy link did not show separate security or compliance claims.checked 9 Oct 2026
- Security advisories
- The repository security page states that there are no published security advisories.checked 4 Oct 2026
- Security reporting
- The repository security page directs vulnerability reports to maintainer @ljharb or Tidelift.checked 4 Oct 2026
- Test execution
- Tests execute serially, and the command-line runner can select test files with glob patterns.checked 9 Oct 2026
- Test output
- Tape writes TAP output by default and can provide an object-mode output stream.checked 9 Oct 2026
- Unhandled exceptions
- By default, uncaught exceptions in tests are not intercepted and cause Tape to crash; the README suggests tape-catch to report them as TAP errors.checked 9 Oct 2026
Alternatives to Tape
- 1

QUnit
Free planAndroidiOSWebAPI7.4Free plan - 2

Web Test Runner
Free planWebLinuxmacOSSelf-hosted6.9Free plan - 3

Cucumber.js
Free planLinuxmacOSSelf-hostedWindows6.8Free plan - 4
Karma
Free planAndroidiOSWebLinux6.7Free plan - 5

Vitest
Free planWebLinuxmacOSWindows6.6Free plan - 6
Jasmine
Free planWebLinuxmacOSWindows6.5Free plan
