https://github.com/vanillaes/tape-es
ESM-compatible Tape.js test runner
https://github.com/vanillaes/tape-es
cli esm esmodules nodejs tape testing
Last synced: about 1 month ago
JSON representation
ESM-compatible Tape.js test runner
- Host: GitHub
- URL: https://github.com/vanillaes/tape-es
- Owner: vanillaes
- License: mit
- Created: 2019-11-27T02:48:47.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2026-04-18T21:08:30.000Z (about 1 month ago)
- Last Synced: 2026-04-18T22:31:52.159Z (about 1 month ago)
- Topics: cli, esm, esmodules, nodejs, tape, testing
- Language: JavaScript
- Homepage:
- Size: 813 KB
- Stars: 23
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Tape-ES
📼 A Tape test runner for modern JavaScript 📼
## Features
- Runs ECMAScript module tests
- Runs CommonJS tests
- Uses sensible defaults
- Compatible with tap reporters
- Works in CI/CD pipelines
## tape-es
### Arguments
`tape-es [...options] [files]`
- `[files]` - File(s)/glob(s) to test (default: `**/*.spec.js`)
- `--cwd` - Current working directory
- `--ignore` - File(s)/glob(s) to ignore (default `**/node_modules/**`)
- `--watch` - Watch for changes to the test(s)
### Usage
```sh
# run the tests
esmtk test
# run the tests (using a different naming scheme)
esmtk test **/*.test.js
# run the tests (ignore tests)
esmtk test **/*.test.js --ignore **/node_modules/**,src/rm.spec.js
# run the tests (change the current working directory)
esmtk test **/*.test.js --cwd src/
# run the tests (watch for changes)
esmtk test --watch
```
**Note: In Linux/OSX, glob pattern[s] must be delimited in quotes.**
## Writing Tests
Tests are identical to [Tape][], except `import` is used to load modules (ie not `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.
*Recommendation:*
1. if you want speed (ie CI/CD) don't use a reporter
2. if you want readability use [tap-spec][]
```sh
tape-es | tap-spec
```
[Tape]: https://github.com/substack/tape
[TAP]: https://en.wikipedia.org/wiki/Test_Anything_Protocol
[tap-spec]: https://github.com/scottcorgan/tap-spec