https://github.com/scramjetorg/nodeunit-tape-compat
Run nodeunit test cases with much faster and actively developed tape.
https://github.com/scramjetorg/nodeunit-tape-compat
javascript node-js nodejs nodeunit tape unit-test
Last synced: about 1 year ago
JSON representation
Run nodeunit test cases with much faster and actively developed tape.
- Host: GitHub
- URL: https://github.com/scramjetorg/nodeunit-tape-compat
- Owner: scramjetorg
- License: mit
- Created: 2018-06-25T19:53:51.000Z (almost 8 years ago)
- Default Branch: develop
- Last Pushed: 2023-11-30T15:15:39.000Z (over 2 years ago)
- Last Synced: 2025-05-05T19:21:32.952Z (about 1 year ago)
- Topics: javascript, node-js, nodejs, nodeunit, tape, unit-test
- Language: JavaScript
- Size: 864 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# nodeunit-tape-compat
A [`nodeunit`](https://npmjs.com/package/nodeunit) compatible runner based on [`tape`](https://npmjs.com/package/tape) for lazy people like me that don't want to review 1000 files and change two function signatures in every one...
Simply take your `nodeunit` files and this will run your tests with tape, removing legacy dependencies on non supported `nodeunit`.
If this is not fully compatible with nodeunit, please open an issue with an example test.
## Usage
From command line:
```bash
# -- with global install --
npm i -g nodeunit-tape-compat
nodeunit-tape
# -- or simply --
npx nodeunit-tape-compat [-t]
```
The `-t` flag runs only methods starting with "test".
In package JSON (remember to `npm i -D nodeunit-tape-compat`):
```json
"test": "nodeunit-tape ./test/**/*.js"
```
From node.js:
```javascript
const { DataStream } = require('scramjet');
const gs = require('glob-stream');
const tapeRunner = require('nodeunit-tape-compat');
tapeRunner.from(gs(process.argv.slice(2)))
.run()
.then(() => {
console.error("✔ Tests succeeded.");
})
.catch(() => {
console.error("✘ Some tests failed.");
process.exit(1);
});
```
## API
### As a module
module.exports = [scramjet module](https://github.com/scramjetorg/scramjet/blob/master/docs/data-stream.md#DataStream+use)
To be used on a [`scramjet`](https://www.npmjs.com/package/scramjet/) stream of files like this:
```javascript
DataStream
.from(gs(process.argv.slice(2)))
.use('nodeunit-tape-compat')
// do something with the stream of tests
.pipe(process.stdout)
;
```
### Methods:
* `async from(Readable stream) : void` consumes a stream of [file objects](#File_object)
* `flattenTests(Object.) : Object.` DataStream mapper that flattens the nested test objects to a simple hash of test cases.
* `runTests(Object.)` DataStream mapper that runs the tests asynchronously and returns the results.
### File object
A file object is meant to be generally compatible with `fs.stat` and `VinylFS`.
Properties:
* `path` - path to the file containing tests