Skip to content

Latest commit

 

History

History
255 lines (150 loc) · 9.56 KB

File metadata and controls

255 lines (150 loc) · 9.56 KB
layout default
title TAP producers

TAP Producers

Systems which output TAP.

Contents

Ada

  • Ahven unit test library for Ada produces TAP 12 output.

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.

C / C++

C TAP Harness

Russ Alberry has a C TAP library available here.

LibTap

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.

MyTAP (for MySQL)

MyTAP is a TAP producer for C. It is the unit testing framework used inside the MySQL Server

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.

Common Lisp

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.

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.

Erlang

Limbo (OS Inferno)

Forth

Haskell

TAP Module

Java

JTap

tap4j

C#

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.

Javascript

node-tap

A Node.js test framework and harness toolkit that produces and consumes the TAP format.

tape

tap-producing test harness for node and browsers.

Mocha

A Node.js and browser testing framework that has TAP 'reporter'.

ESLint

A JavaScript linting tool that runs on Node.js that has a TAP 'formatter'.

qunit-tap

Instead of QUnit producing output only in your browser, it can produce TAP.

  • qunit-tap Github project page
  • Article on running JS tests on the command-line with QUnit and Rhino

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.Simple

Test.Simple

Lua

lua-TestMore

A port of the Perl Test::More framework to Lua.

Busted

A unit testing framework for Lua.

OCaml

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](http://caml.inria.fr/cgi-bin/hump.en.cgi?contrib=561) testSimple project page (last updated 2007)
    

Pascal

Also Object Pascal, Delphi, FPC (Free Pascal Compiler), etc.:

Perl

test::Builder

test.pm

PostgreSQL

pgTAP

Python

PyTAP

Ruby

Bacon

  • bacon produces version 12 TAP output

PHP

phpt

PHPUnit

Simpletest

test.php

Apache::test

Apache-test's PHP writes TAP by default and includes the standalone test-more.php

test-more-php

test-more-php provides the test::Simple & test::More APIs for PHP

SnapTest

PHP5 Unit Testing Framework

PL/SQL

SH / Shell Script

Bats

  • Bats - the Bash Automated Testing System

tap-functions

  • [tap-functions](http://testanything.org/wiki/index.php/Tap-functions)
    

(An excellent and useful library, I use it often. --Jeremiah)

Sharness

  • Sharness - Shell-based Test Harness Library, derived from Git project (see below)

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.

bash-test-utils

  • bash-test-utils - bash test library, unintrusive, optionally many utilities for testing in Linux/Xen/KVM context.

Non Proliferation

TAP producer authors should be aware of (and hopefully sign) the TAP Namespace Nonproliferation Treaty