Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zoubin/tap-summary
Summarize TAP
https://github.com/zoubin/tap-summary
Last synced: 3 months ago
JSON representation
Summarize TAP
- Host: GitHub
- URL: https://github.com/zoubin/tap-summary
- Owner: zoubin
- License: mit
- Created: 2015-11-22T08:06:50.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-05-24T08:55:41.000Z (over 2 years ago)
- Last Synced: 2024-07-05T14:51:05.299Z (4 months ago)
- Language: JavaScript
- Homepage:
- Size: 918 KB
- Stars: 44
- Watchers: 3
- Forks: 8
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
- License: LICENSE
Awesome Lists containing this project
- awesome-tap - tap-summary - Summarized output. (Reporters / JavaScript)
README
# tap-summary
[![version](https://img.shields.io/npm/v/tap-summary.svg)](https://www.npmjs.org/package/tap-summary)
[![status](https://travis-ci.org/zoubin/tap-summary.svg?branch=master)](https://travis-ci.org/zoubin/tap-summary)
[![dependencies](https://david-dm.org/zoubin/tap-summary.svg)](https://david-dm.org/zoubin/tap-summary)
[![devDependencies](https://david-dm.org/zoubin/tap-summary/dev-status.svg)](https://david-dm.org/zoubin/tap-summary#info=devDependencies)A reporter for TAP.
## Example
![summary](example/clip.gif)
## Usage
### package.json
```json
{
"scripts": {
"test": "tape test/*.js | tap-summary"
}
}
```### CLI Options
```
--no-ansi Disable ANSI formatting
--no-progress Disable progress output during tests
```### API
```js
var summarize = require('tap-summary')var fs = require('fs')
fs.createReadStream('test.tap')
.pipe(summarize({
ansi: true,
progress: true,
}))
.pipe(process.stdout)```
Also, the default formatter could be replaced with custom ones.
```js
var reporter = require('tap-summary').reporter()var fs = require('fs')
fs.createReadStream('test.tap')
.pipe(customize(reporter))
.pipe(process.stdout)```
The `reporter` is a `Duplex`,
which consumes the TAP input and output nothing by default.
However, it emits the following events during the process,
so that `customize` could listen to them and add something into the output.* reporter.on('test.start', test => {}).
Fired when a new test detected.
* reporter.on('test.end', test => {}).
Fired when the end of a test reached.
* reporter.on('test.assert', (assertion, test) => {}).
Fired when a new assertion found.
* reporter.on('summary', (stats, fails, comments) => {}).
Fired when all TAP input has been processed.Details about the `test` and `assertion` object could be found [here][tap-out].
The `stats` object:
```js
var stats = {
// the total time (ms) it takes
duration: duration,
// the total number of assertions planned
planned: res.plans.reduce(function (p, c) {
return c.to - c.from + 1 + p;
}, 0),
// the actual total number of assertions found
assertions: res.asserts.length,
// the number of successful assertions
pass: res.pass.length,
// the number of failed assertions
fail: res.fail.length,
// the number of comments found
comments: res.comments.length,
}```
`fails` will be `null` unless `stats.fail > 0`:
```js
{
testName: [failedAssertion]
}```
`comments` will be `null` unless `stats.comments > 0`:
```js
{
testName: [comment]
}```
[tap-out]: https://github.com/scottcorgan/tap-out