App::Test::Tapat - An automated testing framework


Version 0.04

Please note that this should be considered a developer release.


This module is designed to be a framework for automated testing.

    use App::Test::Tapat;
    # New Tapat object 
    my $t = App::Test::Tapat->new;

    # Chop up test into consituent test bits
    print "-> Running $t->{test_name} at $time_now with test id: $t->{test_id}\n";

    # Parse the test for TAP and output results


Tapat aims to be an automated testing framework. It currently only provides a mechanism to run tests which contain TAP, receive the test's output, and relay that output further to a report and, in the future, a database.

Tapat is designed to be programming language agnostic. This means that you can write tests in any language that can produce TAP, and many languages can, including perl, python, php, bash, C/C++, Java, various SQL implementations, ruby, and any language that can create simple TAP output. (See the TAP wiki.) Once your tests are written, they are run by the tapat harness and reports are created.

The goal is to allow testers to focus on their testing, not the mechanism or framework that surrounds their tests, enabling a simple drop-in mechanism for new automated tests to run inside of. So with Tapat, you get a parsing and reporting layer for your tests.



Calling filename returns the name of the test script that will be parsed for TAP. It returns three constituent elements of the test file which will be used later: test_name, test_id and script. These constituent elements are built into the test name merely by convention. A test ought to have a name of test_1, (that is to say; alphanumeric characters followed by an underscore, followed by an integer.) This allows one to sort tests numerically and it is also what Tapat expects. As previously mentioned, it is only a convention, but hopefully a useful one.


This is where the TAP from your test gets parsed. A timer is created here as well.


Jeremiah C. Foster, <jeremiah at>


Please report any bugs or feature requests to bug-app-test-tapat at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

    perldoc App::Test::Tapat

You can also look for information at:


Thanks to the Moose team, rjbs for Module::Starter, the TAP team, and Alias for giving us all a goal to aspire to.


Copyright 2008 Jeremiah C. Foster, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.