Base for test scripts
use Test::Assertions::TestScript; use Module::To::Test qw( frobnicate ); ASSERT(frobnicate(),"Frobnicate returns true");
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 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:
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;
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 } );
A script based on Test::Assertions::TestScript will detect the following command line options.
Shallow tracing. Traces are \*(C`print\*(C'ed and AutoImport is turned on.
Deep tracing. Traces are \*(C`print\*(C'ed and AutoImport is turned on.
Imports tracing into \s-1MODULE\s0 specifically. Can be specified multiple times.
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.
$Revision: 1.18 $
Colin Robertson <cpan _at_ bbc _dot_ co _dot_ uk>
(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