TAP Producers
From Test Anything Protocol
Systems which output TAP.
Contents |
[edit] Ada
[edit] Arc (Lisp Dialect)
- arctap.arc - can be found in the Anarki version of Arc, and is used for its test suite, which also has some test scripts written in Perl and test::More.
[edit] C / C++
[edit] C TAP Harness
Russ Alberry has a C TAP library available here.
[edit] LibTap
- Original version (unmaintained)
- Maintenance version by Shlomi Fish
- Maintenance version by Rusty Russell as part of CCAN
- Article about LibTap
(This library appears to no longer be under active development. It also suffers from an non-POSIX thread implementation. If you remove the thread ifdefs from tap.c it does compile and run however.)
[edit] libtap++
Libtap++ is a mostly-complete port of test::More to C++. Its main advantage over libtap is that it provides polymorphic is and isnt functions.
[edit] MyTAP (for MySQL)
MyTAP is a TAP producer for C. It is the unit testing framework used inside the MySQL Server
[edit] Yet Another libtap
Another library for producing tap in C that compiles without much work on the dumbest (no special library requirements) of Unix-like and Windows development environments. It is feature-full (ok, is, isnt, like, unlike, todo, skip, dies_ok, cmp_ok, etc...), consistent (todo until endtodo, skip until endskip), extendable, and keeps track of file-line information (like test::More does). It also uses macros in nice ways so the user can leave out the message portion at the end of the test ok(1) and ok(1, "hello %s", "world") are both valid.
[edit] Common Lisp
[edit] cl-tap-producerX
cl-tap-producerX is a testing library for Common Lisp which produces test results in the test Anything Protocol (TAP) format. The most common usage is to print the TAP output to standard output, for use with tools such as the Perl prove utility, but other usages are possible. cl-tap-producerX supports most parts of the TAP specification, including TODO tests, skipped tests, and diagnostics. cl-tap-producerX automatically infers diagnostics in the most common usages. cl-tap-producerX is extremely light-weight with almost no boilerplate required in the most common usage scenario. Boilerplate is available for those who prefer it.
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. In the most common usage, this process is transparent.
[edit] testbild
testbild, the universal test output production and consumption facility, is a Common Lisp library designed to provide a common interface for Unit testing output. Currently it supports TAP (versions 12, 13) and xUnit style output.
It is asdf-installable and also available via
Quicklisp.
[edit] Erlang
[edit] Limbo (OS Inferno)
[edit] Forth
[edit] Haskell
[edit] TAP Module
[edit] Java
[edit] JTap
[edit] tap4j
[edit] C#
[edit] Taps
Taps is a test tool for the .NET framework. Taps compiles C# test scripts on the fly and runs them. The output of the scripts conforms to the TAP protocol. The set of test functions available to the test scripts is inspired on the test::More module.
Some features of Taps:
- Allows a test script to run tests in multiple threads
- Does deep comparison of complex data structures and if they are not equal outputs them annotated with a clear path to the differing item
- Has multiple output modes: YAML, msbuild-friendly, terse
- Supports testing of "internal" classes and methods
The project home is hosted at Google Code.
[edit] Javascript
[edit] test.Simple
[edit] test.Perlish
Similar to test.Simple above, test.Perlish provides test::Simple style testing
but targets GNOME Seed and can be used with prove
-e seed.
- Test.Perlish Gitorious project page
[edit] node-tap
A Node.js test framework and harness toolkit that produces and consumes the TAP format.
[edit] OCaml
[edit] testSimple
A unit testing framework for OCaml. It is based heavily on the Perl unit testing framework of the same name, and produces TAP output which can be read and analyzed by a wide range of existing Perl tools. The goal of this framework is to make writing unit tests as simple and as easy as possible (hence the name).
- TestSimple testSimple project page (last updated 2007)
[edit] Pascal
Also Object Pascal, Delphi, FPC (Free Pascal Compiler), etc.:
[edit] Perl
[edit] test::Builder
[edit] test.pm
[edit] PostgreSQL
[edit] pgTAP
[edit] Python
[edit] PyTAP
[edit] Ruby
[edit] Bacon
- bacon produces version 12 TAP output
[edit] PHP
[edit] phpt
[edit] PHPUnit
[edit] Simpletest
[edit] test.php
- Test.php on CPAN
[edit] Apache::test
Apache-test's PHP writes TAP by default and includes the standalone test-more.php
[edit] test-more-php
test-more-php provides the test::Simple & test::More APIs for PHP
[edit] PL/SQL
- TAP-compliant testing in PL/SQL (needs work)
[edit] SH / Shell Script
[edit] Bats
- Bats - the Bash Automated Testing System
[edit] tap-functions
(An excellent and useful library, I use it often. --Jeremiah)
[edit] Sharness
- Sharness - Shell-based Test Harness Library, derived from Git project (see below)
[edit] Git Project
While it's not a working implementation, the Git project has starter code that supplies the basic functionality of ok/not Ok and some skipping functionality, even with colored output! Look in t/test-lib.sh and other test files for example code and use.
[edit] Non Proliferation
TAP producer authors should be aware of (and hopefully sign) the TAP Namespace Nonproliferation Treaty

