# Awesome TAP

> Useful resources for the Test Anything Protocol

TAP is a simple text-based interface between testing modules in a test harness.

The list is very JavaScript focused right now. That’s just because I’m only familiar with TAP stuff in the JS world. Contributions welcome for any language.

## Contents

- Reporters
- Producers
- Consumers
- Tools
- Articles
- Tutorials
- Documentation
- Community

## Reporters

### JavaScript

- tap-dot - Dotted output.
- tap-spec - Mocha-like spec reporter.
- tap-nyan - Nyan cat.
- tap-min - Minimal output.
- tap-difflet - Minimal output with diffing.
- tap-diff - Human-friendly output with diffing.
- tap-simple - Simple output.
- faucet - Human-readable summarizer.
- tap-mocha-reporter - Use any of the Mocha reporters.
- tap-summary - Summarized output.
- tap-pessimist - Only shows failed tests.
- tap-prettify - Nice readable output with diffing.
- tap-colorize - Colorize the output while preserving machine-readability.
- tap-bail - Bail out when the first test fails.
- tap-notify - Notifier for macOS, Linux and Windows.
- tap-json - JSON output.
- ava-tap-json - JSON output with AVA compatibility.
- tap-xunit - xUnit output.
- tap-teamcity - Output for TeamCity.

## Producers

Things that produce TAP output.

### JavaScript

- AVA - Futuristic test runner (`$ ava --tap`).
- tap - TAP test framework for Node.js.
- tape - TAP-producing test harness for Node.js and browsers.
- ESLint - Pluggable JavaScript linter (`$ eslint --format=tap`).
- Mocha - Feature-rich test framework for Node.js and browsers (`$ mocha reporter=tap`).
- qunit-tap - TAP output for QUnit.
- jasmine-reporters - TAP output for Jasmine.
- karma-tap-reporter - TAP output for Karma.
- mos - Markdown file generator and tester (`$ mos test --tap`).
- zora - TAP-producing test runner that works with ES2015 without Babel.
- node:test - Minimal TAP test runner included with Node.js.

### Swift

- TAP - A Swift package for the Test Anything Protocol (v13).

### Fish

- Fishtape - TAP producer and test harness for fish.

### Bash

- bats - Bash Automated Testing System.
- ShellSpec - A full-featured BDD unit testing framework for POSIX shells.

More…

## Consumers

Things that consume TAP output.

### JavaScript

- tap-parser - TAP parser.
- tap-out - TAP parser.
- yamlish - YAML-block parser.

More…

## Tools

### JavaScript

- tap-dev-tool - Prettify TAP in the browser console.
- tap-merge - Merge multiple TAP streams.
- smokestack - Run TAP tests in a browser and write the output to `stdout`.
- chutney - Run TAP tests at Sauce Labs. Lightweight smokestack alternative.

### Python

- tappy - Tools for working with TAP.

## Articles

- Understand the Test Anything Protocol

## Tutorials

- test-anything - Learn to test anything with TAP through an interactive workshop.

## Documentation

- Specification
- Wikipedia

## Community

- Discuss
- Reddit
- Stack Overflow

tap.md Github