Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including covert with all npm packages installed. Try it out:

covert lists no main file and has no index.js, so it can't be directly required. If this is a mistake, please let us know. It may however contain internal files that you can require manually:

// require("covert/[??]")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

covert v1.1.0

code coverage command con coverify


code coverage command


Just run covert on some ordinary files:

$ covert test/*.js
TAP version 13
# defined-or
ok 1 empty arguments
ok 2 1 undefined
ok 3 2 undefined
ok 4 4 undefineds
ok 5 false[0]
ok 6 false[1]
ok 7 zero[0]
ok 8 zero[1]
ok 9 first arg
ok 10 second arg
ok 11 third arg
# (anonymous)
ok 12 should be equal

# tests 12
# pass  12

# ok

# /home/substack/projects/defined/index.js: line 3, column 18-26

  if (false) dead();

# /home/substack/projects/defined/index.js: line 6, column 16-18, 19-25, 26-30, 31-51

  for (var i = 0; i < 5; i++) console.log('blah');
               ^  ^^^^^  ^^^  ^^^^^^^^^^^^^^^^^^^

# /home/substack/projects/defined/index.js: line 10, column 3-24


# coverage: 76/82 (92.68 %)

non-zero exit code in `coverify` command

In this example, this test suite is using tape. Tests written with tape can just be run directly using node, which fits very well with what this command expects.


With npm do:

npm install -g covert


usage: covert {OPTIONS} FILES

  Instrument FILES and in-module dependencies, writing coverage data to STDERR.

  OPTIONS are:


      Suppress normal output and print json coverage data to stdout.

    -q, --quiet  

      Only print coverage data, suppressing all other output.

    -c, --color

      Use color in the output. Default: true if stdout is a TTY.


Most code coverage libraries do weird things I don't like, such as writing all their junk to directories and files in a completely out-of-band way.


  • only uses stderr and stdout, doesn't write to any files. All of this business about lcov files and directories with reports in them really weirds me out.

  • bundles with browserify --bare and a transform instead of hijacking require(). All the reporting goes through a unix pipeline on process.stdin and process.stdout. This is still hacky, but it's the kind of hacky that you can fix yourself when the magic breaks down. The internal pipeline is just:

browserify -t coverify --bare $* | node | coverify
  • works really well with simple unix pipelines. stdin and stdout: the wisdom of the ancients.



RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free