mixmix / tap-arc

Node.js spec-like TAP reporter

Home Page:https://www.npmjs.com/package/tap-arc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tap-arc

A small (~12kB) TAP reporter with spec-like output, streaming, and failure diffing.

Objectives

  • minimal, informative spec-like output for all assertions
  • minimal, maintained dependencies -- can't be shipping React to CI
  • streaming in and out
  • helpful diffing for failures

tap-arc output screen shot

Installation & Usage

Compatible with Node.js 12+.

For a JavaScript project, save tap-arc as a development dependency:

npm i -D tap-arc

Simply pipe tap output to tap-arc.
Example npm test script:

// package.json
"scripts": {
  "test": "tape test/**/*.js | tap-arc"
}

💁 tap-arc will format output from any tap reporter. tape was used for testing.

Alternatively, use tap-arc globally:

npm i -g tap-arc

tap-arc --help

Usage:
  tap-arc <options>

Parses TAP data from stdin, and outputs a "spec-like" formatted result.

Options:

  -v | --verbose
    Output full stack trace

  -p | --pessimistic | --bail
    Immediately exit upon encountering a failure
    example: tap-arc -p

  --no-color
    Output without ANSI escape sequences for colors
    example: tap-arc --no-color

  --padding [space, dot, <custom characters>]
    String to use when padding output (default="  ")
    example: tap-arc --padding "••"
    example: tap-arc --padding dot

  --indent [space, dot, <custom characters>]
    String to use when indenting Object diffs (default="··")
    example: tap-arc --indent ">>"
    example: tap-arc --indent space

Development

The entirety of the reporter lives in ./index.js.

When building tap-arc, it's helpful to try various TAP outputs. See package.json "scripts" for useful "tap-arc:*" commands to test passing and failing TAP.

npm run tap-arc:simple # used to create the screen shot above

The main library is snapshot tested (npm test loads all snapshots to compare to current output). Create snapshots with the npm run make-snapshots commands.

Credit & Inspiration

  • tap-spec ol' reliable, but a bit stale and npm vulnerabilities
  • tap-difflet inspired output and diffing, also vulnerable
  • tap-min helpful approaches to streaming and exit codes

About

Node.js spec-like TAP reporter

https://www.npmjs.com/package/tap-arc


Languages

Language:JavaScript 100.0%