Tape-ES
A **[Tape.js][]** test runner and watcher for modern JavaScript. Works with both ES modules and CommonJS.
## 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
```sh
tape-es
```
### Advanced Usage
Specify custom parameters
```sh
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
```sh
tape-watch-es
```
### Advanced Usage
Specify custom parameters
```sh
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.
```javascript
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`
[Tape.js]: https://github.com/substack/tape
[TAP]: https://en.wikipedia.org/wiki/Test_Anything_Protocol
[tap-spec]: https://github.com/scottcorgan/tap-spec