SYNOPSIS

        use Test::Assertions::TestScript;
        use Module::To::Test qw( frobnicate );

        ASSERT(frobnicate(),"Frobnicate returns true");

DESCRIPTION

Test::Assertions::TestScript provides a base for writing test scripts. It performs some common actions such as setting up the @INC path and parsing command-line options, specifically:

  • The lib and t/lib directories are added to @INC.

  • The current directory is changed to the directory the script is in.

  • Test script command-line options are parsed. (See \*(L"COMMAND-LINE \s-1OPTIONS\s0\*(R")

  • The test set of functions from Test::Assertions are imported into your test script.

Test::Assertions::TestScript makes certain assumptions about the filesystem layout of your project:

  • Modules that you are testing are in the lib directory of your project.

  • Test scripts are in the t directory.

  • There may also be a t/lib directory for any modules written for the test process.

Test::Assertions::TestScript should be \*(C`use\*(C'd before any modules that you intend to test.

OPTIONS

Options can be supplied to the import function. These should be placed after the \*(C`use\*(C' or \*(C`import\*(C'. For example

use Test::Assertions::TestScript( tests => 10, options => { 'b', \$opt_b })

The following options are defined:

tests

The number of tests to pass to \*(C`plan tests\*(C' from Test::Assertions. For example to tell Test::Assertions::TestScript that the script contains 42 tests: use Test::Assertions::TestScript tests => 42;

options

A hashref of additional options to capture via Getopt::Long. The \*(L"options\*(R" import parameter is passed verbatim to GetOptions, so something along the following lines is required in order to capture the \*(L"-b\*(R" command line option: use Test::Assertions::TestScript( options => { 'b' => \$opt_b } );

COMMAND-LINE OPTIONS

A script based on Test::Assertions::TestScript will detect the following command line options.

-t

Shallow tracing. Traces are \*(C`print\*(C'ed and AutoImport is turned on.

-T

Deep tracing. Traces are \*(C`print\*(C'ed and AutoImport is turned on.

--trace-module=MODULE

Imports tracing into \s-1MODULE\s0 specifically. Can be specified multiple times.

-s

Save generated output. You will need to write the actual code to do this in your testscript, but you can inspect $Test::Assertions::TestScript::SAVE_OUTPUT to see whether this argument was given.

Be aware that all other command line options will be disregarded unless the \*(C`options\*(C' import parameter is used to capture them.

VERSION

$Revision: 1.18 $

AUTHOR

Colin Robertson <cpan _at_ bbc _dot_ co _dot_ uk>

COPYRIGHT

(c) \s-1BBC\s0 2005-6. This program is free software; you can redistribute it and/or modify it under the \s-1GNU\s0 \s-1GPL\s0.

See the file \s-1COPYING\s0 in this distribution, or http://www.gnu.org/licenses/gpl.txt