https://testanything.org/ Test Anything Protocol * Home * Testing with TAP * Producers * Consumers * Specification Test Anything Protocol TAP, the Test Anything Protocol, is a simple text-based interface between testing modules in a test harness. It decouples the reporting of errors from the presentation of the reports. One of its major uses is for noise reduction; when you have a suite of many tests, making them TAP producers and using a TAP consumer to view them helps ensures that you will see everything you need to notice and diagnose breakage without being distracted by a flood of irrelevant success messages. It can assist other forms of analysis and statistics-gathering as well. TAP started life as part of the test harness for Perl but now has implementations in C, C++, Python, PHP, Perl, Java, JavaScript, Go, Rust, and others. Consumers and producers do not have to be written in the same language to interoperate. Here's what a TAP test stream looks like: 1..4 ok 1 - Input file opened not ok 2 - First line of the input valid ok 3 - Read the rest of the file not ok 4 - Summarized correctly # TODO Not written yet Testing with TAP * Testing with TAP - How to run TAP based tests in your language of choice TAP Development * TAP Producers - Testing tools that generate TAP output * TAP Consumers - Test harnesses that read TAP * TAP Philosophy - The Tao of TAP * TAP History - The story of TAP Specifications * TAP version 14 specification (Current) * TAP version 13 specification * TAP specification External Resources * Wikipedia article on TAP * The TAP subreddit github.com/testanything