Let's go to the video tape! [tape-player is a simple, terse, in-process reporter for the tape test harness for Node.js]
I've been a happy user of the nodeunit
test harness for a long time, but it was deprecated a few years ago.
Recently, I went looking for a similar Node.js test harness to replace it.
I prefer small, simple packages and settled on the tape
test harness.
I enjoy nearly everything about it, but didn't like having to pipe output to a formatter (more on this below).
So I wrote a quick bit of code to create an in-process reporter.
Then I realized what I'd done could have broader applicability (in my own projects, if nowhere else!) and published a reusable package after adding scenario tests to ensure formatted output for all of the the tape
primitives is reasonable.
If this seems interesting, the README goes into more detail:
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 (likenpm test
). (Though there are workarounds for this, they are shell- and platform-specific.)Fortunately,
tape
offers an alternative logging mechanism via itscreateStream
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.
You can find directions to install and enable tape-player
on the GitHub project for tape-player
.