tape-es

ESM-compatible Tape.js test runner

Usage no npm install needed!

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

README

Tape-ES

A Tape.js test runner and watcher for modern JavaScript. Works with both ES modules and CommonJS.

GitHub Release NPM Release Latest Status Release Status

Discord

Features

  • runs ES module tests
  • runs tests in parallel for speed
  • uses sensible defaults
  • works with type: module packages

Note: Since this is an ES package, it requires Node >= v14.x

tape-es

Arguments

tape-es [pattern] -i [pattern] -r [path] -t [number]

  • [pattern] - the file matcher pattern (default **/*.spec.js)
  • -i | --ignore - the ignore matcher pattern (default **/node_modules/**)
  • -r | --root - the root path to run the tests from (default process.cwd())
  • -t | --threads - Number of threads to run concurrently (default 10)

Basic Usage

Use the defaults

tape-es

Advanced Usage

Specify custom parameters

tape-es "**/*.spec.js" -i "node_modules/**" -r ../absurdum/ -t 20

Note: In Linux/OSX the matcher patterns must be delimited in quotes.

tape-watch-es

Arguments

tape-es [pattern] -i [pattern] -r [path]

  • [pattern] - the file matcher pattern (default **/*.spec.js)
  • -i | --ignore - the ignore matcher pattern (default **/node_modules/**)
  • -r | --root - the root path to run the tests from (default process.cwd())

Basic Usage

Use the defaults

tape-watch-es

Advanced Usage

Specify custom parameters

tape-es "**/*.spec.js" -i "node_modules/**" -r ../absurdum/

Note: In Linux/OSX the matcher patterns must be delimited in quotes.

Writing Tests

Tests are identical to Tape.js, except import is used to load modules rather than require.

import test from 'tape';
import { arrays } from '../../index.js';

test('arrays.chunk(array) - should return a chunk for each item in the array', t => {
  // ...test code
});

Tap Reporters

One of the greatest advantages to using Tape, is that it outputs results in the standard TAP format. That means you can pipe the results into a wide array of TAP reporters.

The parallel nature of this runner will break most reporters. As a General rule.

  1. if you want speed (ie CI/CD) don't use a reporter
  2. if you want speed and readability use tap-spec
  3. if you want to use any reporter, run tests in parallel with tape-es -t 1