Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scottcorgan/tap-out
A different tap parser
https://github.com/scottcorgan/tap-out
Last synced: about 1 month ago
JSON representation
A different tap parser
- Host: GitHub
- URL: https://github.com/scottcorgan/tap-out
- Owner: scottcorgan
- License: mit
- Created: 2014-11-21T04:31:59.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2023-03-04T02:42:00.000Z (almost 2 years ago)
- Last Synced: 2024-09-27T10:12:16.135Z (3 months ago)
- Language: JavaScript
- Size: 212 KB
- Stars: 23
- Watchers: 4
- Forks: 28
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-tap - tap-out - TAP parser. (Consumers / JavaScript)
README
# tap-out
A different tap parser
## Install
```
npm install tap-out --save
```## Usage
**CLI**
```
$ something-that-produces-tap | tap-out
{
tests: [
{ name: 'is true', number: 1, raw: '# is true', type: 'test' }
],
asserts: [
{ name: 'true value', number: 1, ok: true, raw: 'ok 1 true value', test: 1, type: 'assert' },
{ name: 'true value', number: 2, ok: true, raw: 'ok 2 true value', test: 1, type: 'assert' }
],
versions: [],
results: [],
comments: [],
plans: [{ type: 'plan', raw: '1..2', from: 1, to: 2, skip: false }],
pass: [
{ name: 'true value', number: 1, ok: true, raw: 'ok 1 true value', test: 1, type: 'assert' },
{ name: 'true value', number: 2, ok: true, raw: 'ok 2 true value', test: 1, type: 'assert' }
],
fail: [],
errors: []
}
```**API**
```js
var tapOut = require('tap-out');var t = tapOut(function (output) {
console.log(output);
});t.on('assert', function (assert) {
// Do something
});process.stdin.pipe(t);
```## Methods
### var t = tapOut(function (err, output) {})
Returns a stream that emits events with various TAP data. Takes a callback which is called when all parsing is done.
## Events
### t.on('output', function (output) {})
All output after all TAP data is parsed.
Example output
```js
{
tests: [
{ name: 'is true', number: 1, raw: '# is true', type: 'test' }
],
asserts: [
{ name: 'true value', number: 1, ok: true, raw: 'ok 1 true value', test: 1, type: 'assert' },
{ name: 'true value', number: 2, ok: true, raw: 'ok 2 true value', test: 1, type: 'assert' }
],
results: [],
versions: [],
comments: [],
fail: [],
pass: [
{ name: 'true value', number: 1, ok: true, raw: 'ok 1 true value', test: 1, type: 'assert' },
{ name: 'true value', number: 2, ok: true, raw: 'ok 2 true value', test: 1, type: 'assert' }
],
}
```### t.on('test', function (test) {})
Parsed test object with details.
* `type` - value will always be `test`
* `name` - name of the test
* `raw` - the raw output before it was parsed
* `number` - the number of the test```js
{
type: 'test',
name: 'is true',
raw: '# is true',
number: 1
}
```### t.on('assert', function (assertion) {})
Parsed assert object details.
* `type` - this will always be `assert`
* `name` - the name of the assertion
* `raw` - the raw output before it was parsed
* `number` - the number of the assertion
* `ok` - whether the assertion passed or failed
* `test` - the number of the test this assertion belongs to```js
{
name: 'true value',
number: 1,
ok: true,
raw: 'ok 1 true value',
test: 1,
type: 'assert'
}
```### t.on('version', function (version) {})
Parsed version data.
* `type` - this will always be `version`
* `raw` - the raw output before it was parsed```js
{
raw: 'TAP version 13',
type: 'version'
}
```### t.on('result', function (result) {})
Parsed test result data for tests, pass, fail.
* `type` - this will always be `result`
* `name` - the name of the result
* `raw` - the raw output before it was parsed
* `count` - the number of tests related to this resultTests
```js
{
count: '15',
name: 'tests',
raw: '# tests 15',
type: 'result'
}
```Pass
```js
{
count: '13',
name: 'pass',
raw: '# pass 13',
type: 'result'
}
```Fail
```js
{
count: '2',
name: 'fail',
raw: '# fail 2',
type: 'result'
}
```### t.on('pass', function (assertion) {})
Parsed assertion that has passed with details. The assertion formate is the same as the [`assert`](#tonassert-function-assertion-) event.
### t.on('fail', function (assertion) {})
Failed assertion that has passed with details. The assertion formate is the same as the [`assert`](#tonassert-function-assertion-) event.
### t.on('comment', function (comment) {})
Generic output like `console.log()` in your tests.
* `type` - this will always be `comment`
* `raw` - the raw output before it was parsed
* `test` - the number of the test this comment belongs to```js
{
type: 'comment',
raw: 'this is a console log',
test: 1
}
```## Run Tests
```
git clone [email protected]:scottcorgan/tap-out.git && cd tap-out
npm install
npm test
```