tape-player

A simple, terse, in-process reporter for the tape test harness for Node.js.

Usage no npm install needed!

<script type="module">
  import tapePlayer from 'https://cdn.skypack.dev/tape-player';
</script>

README

tape-player

A simple, terse, in-process reporter for the tape test harness for Node.js.

But why tho?

The Test Anything Protocol (TAP) used by many test harnesses is versatile, but it's not much to look at - or rather, it's too much to look at. There are many custom formatters that work with the tape test harness, but most work by piping process output. This is a useful technique, but interferes with the exit status of the test harness which is a problem in scripts that are meant to fail when tests fail (like npm test). (Though there are workarounds for this, they are shell- and platform-specific.)

Fortunately, tape offers an alternative logging mechanism via its createStream API. This technique is easy to use and runs in-process so it doesn't interfere with the exit status of the test harness. tape-player takes advantage of this to produce a concise test log that's easy to enable.

Hook me up!

Install tape-player via:

npm install tape-player --save-dev

And add it to one or more tape-based test files via:

require("tape-player")
// Ignore return value

That's it - run those tests and you'll see nicely formatted output on the standard output device!

tape-player works with the tape CLI or directly in tape-based files (as with node test-file.js).

Show me what you got...

Example output:

passing test
failing test
  /home/user/project/test/example.js:15:8
  Message:  oops
  Operator: fail
passing test

Tests:    3
Asserts:  5
Failures: 1