TAP producers are any systems which output TAP. This page contains a catalog of software libraries that can act as TAP producers, grouped by programming language.
Some test frameworks exist with TAP producers that are not language specific.
Ada is a modern programming language designed for large, long-lived applications – and embedded systems in particular – where safety and security are essential.
Ahven is a unit test library for Ada which produces TAP 12 output.
C is an imperative (procedural) language. It was designed to be compiled using a relatively straightforward compiler, to provide low-level access to memory, to provide language constructs that map efficiently to machine instructions, and to require minimal run-time support.
ArduinoTap is a C/C++ port of the Perl5 module Test::More on Arduino.
cmocka is an elegant unit testing framework for C with support for mock objects.
KUnit is a unit testing framework for the Linux Kernel. Test output is written to the kernel log in TAP format.
Shlomi Fish’s libtap is a TAP version 12 producer for C. Discontinued in favor of cmocka and libtap.
The shlomifish libtap fork has a branch that replaces the Makefile with Cmake support.
tap4embedded is a TAP producer library designed for C embedded.
C++ is a general-purpose programming language with a bias towards systems programming that: is a better C, supports data abstraction, object-oriented programming, generic programming, and functional programming.
From Standard C++
Looking for a guide? Testing with C++ has some examples.
C# is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.
Taps is a test tool for the .NET framework and Mono. It is inspired on Perl’s testing facilities and is therefore quite different from tools like NUnit.
Common Lisp is the modern, multi-paradigm, high-performance, compiled, ANSI-standardized, most prominent (along with Scheme) descendant of the long-running family of Lisp programming languages.
cl-tap-producerX is a testing library which produces TAP to standard output. cl-tap-producerX is split into two parts: a test library which generates structured test result data, and a TAP producer which formats the structured test data to TAP output.
crystal spec the spec module that comes with Crystal’s standard library includes a TAP formatter.
Elixir is a dynamic, functional language designed for building scalable and maintainable applications.
Spout is a ExUnit formatter that generates TAP output for existing ExUnit test suites. Spout provides a simple way to generate TAP output without having to modify existing test code. Based on CTTAP.
Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability.
CTTAP is a Common Test hook that generates TAP output for existing Common Test test suites. CTTAP provides a simple way to generate TAP output without having to modify existing test code.
etap is a collection of Erlang modules that provide a TAP testing client library. These modules are not meant to compete with eunit, but to offer a more general testing facility that isn’t provided by eunit.
fish is a smart and user-friendly command line shell for OS X, Linux, and the rest of the family.
Fishtape is a TAP producer and test harness for fish.
Forth is a computer language originally designed for embedded and real-time applications.
From FORTH, Inc.
Check out the Testing with Forth guide.
gforth-tap is a TAP producer for Forth at an alpha level readiness.
Fortran (formerly FORTRAN, derived from “Formula Translation”) is a general-purpose, imperative programming language that is especially suited to numeric computation and scientific computing. Originally developed by IBM in the 1950s for scientific and engineering applications, Fortran came to dominate this area of programming early on and has been in continuous use for over half a century in computationally intensive areas such as numerical weather prediction, finite element analysis, computational fluid dynamics, computational physics, crystallography and computational chemistry. It is a popular language for high-performance computing and is used for programs that benchmark and rank the world’s fastest supercomputers.
Fortran encompasses a lineage of versions, each of which evolved to add extensions to the language while usually retaining compatibility with prior versions. Successive versions have added support for structured programming and processing of character-based data (FORTRAN 77), array programming, modular programming and generic programming (Fortran 90), high performance Fortran (Fortran 95), object-oriented programming (Fortran 2003) and concurrent programming (Fortran 2008).
fortran-tap is a minimal producer implementation of the “Test Anything Protocol” (TAP) in Fortran 90 and the c preprocessor. Just copy two files to your project and start testing.
Gambas is an open source programming language and rapid application development system (RAD) which empowers a programmer to create a great variety of programs: From simple scripts and command line applications, server daemons up to large GUI aplications in Gambas Basic under Linux.
gb.test is a framework for unittesting which uses TAP as interface.
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
tap.go is a basic TAP producer
Haskell is an advanced purely-functional programming language.
IGOR Pro is a scientific data analysis software, numerical computing environment and programming language.
Igor UTF is a test harness and can output its results in TAP format.
Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.
AVA an asynchronous test framework combining plans and tests and has an optional TAP reporter.
Painless a modern, easy to use test library for node and browsers that has an optional TAP reporter.
testling runs unit tests in all the browsers and outputs TAP.
zora is a TAP producer with pure ES6 support for node.js and browsers without babel.
Limbo is the application programming language for Inferno. Syntactically similar to C, it has several features that make it simpler, safer and yet more powerful and better suited to the development of concurrent, distributed systems.
From vita nuova
inferno-contrib-tap is a TAP producer that supports version 12.
Lua is a powerful, fast, lightweight, embeddable scripting language.
busted is a unit testing framework for Lua with a built-in TAP output handler.
luatest is a test framework written in Lua.
MATLAB is a high-level language for numerical computation, visualization, and application development.
OCaml is an industrial strength programming language supporting functional, imperative and object-oriented styles.
TestSimple is a simple unit testing framework based on Perl’s very successful Test::* modules.
Omnis Studio is a powerful development environment that lets you deploy apps to virtually any device, on any platform, including tablets, smartphones, and desktop computers.
**OmnisTAP is a TAP-compliant unit-testing framework for Omnis Studio.
Pascal is a historically influential imperative and procedural programming language, designed as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.
tap4pascal is a very easy-to-use, but powerful unit testing suite for Pascal (FreePascal, Turbo Pascal, et al), conforming to the TAP specification.
Perl is a general-purpose programming language originally developed for text manipulation and now used for a wide range of tasks including system administration, web development, network programming, GUI development, and more.
Test2 suite is a faster and richer Perl library written to replace the old test suite. Test::More was rewritten from scratch over it. See the Chad Granum - “Better Testing with Test2-Suite” video from “The Perl Conference 2019”.
“In Perl 6, we decided it would be better to fix the language than fix the user.” — Larry Wall
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML.
Lens is a PHP unit-testing framework with readable tests that catch everything.
PHPUnit is a programmer-oriented testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks and supports logging TAP.
SnapTest is a powerful unit testing framework for PHP 5+, leveraging PHP’s unique runtime language to simplify the unit test process without sacrificing the agility tests provide. It has a built-in TAP reporter.
Prolog is a general purpose logic programming language that has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is declarative: the program logic is expressed in terms of relations, represented as facts and rules.
Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming.
Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.
Rust is a multi-paradigm system programming language focused on safety, especially safe concurrency. Rust is syntactically similar to C++, but is designed to provide better memory safety while maintaining high performance.
according to wikipedia
Sass is the most mature, stable, and powerful professional grade CSS extension language in the world.
A shell script is a computer program designed to be run by the Unix shell, a command line interpreter. The various dialects of shell scripts are considered to be scripting languages. Typical operations performed by shell scripts include file manipulation, program execution, and printing text.
bash-tap-functions is a TAP-producing Bash libary.
Bats is a TAP-compliant testing framework for Bash. It provides a simple way to verify that the UNIX programs you write behave as expected.
Git has code that supplies the
not ok and skipping functionality. Look in
other test files for example code and use.
Sharness is a portable shell library to write, run, and analyze automated tests for Unix programs. Since all tests output TAP, they can be run with any TAP harness.
ShellSpec is a full-featured BDD unit testing framework for dash, bash, ksh, zsh and all POSIX shells, has a TAP formatter.
Tapper-autoreport turns bash scripts into TAP test scripts.
SQL (Structured Query Language) is a special-purpose programming language designed for managing data held in a relational database management system (RDBMS).
MyTAP is a suite of database functions that make it easy to write TAP-emitting unit tests in mysql scripts.
alsatian is a unit testing framework which supports test cases and outputs TAP output.
Testy.Ts is a modern TypeScript testing framework with a built-in TAP reporter.
TypeSpec is a BDD framework for TypeScript with a built-in TapReporter class for TAP compliant output.
Some test frameworks solve problems that are not specific to a programming language. These frameworks might be used for infrastructure or other kinds of high level testing.
autotest is a framework for fully automated testing with the ability to produce TAP reports.
Xperior is a system for testing distributed filesystems. Xperior can output TAP test results.