Test::Steering - Execute test scripts conditionally
This document describes Test::Steering version 0.02
use Test::Steering; include_tests( 'xt/vms/*.t' ) if $^O eq 'VMS'; include_tests( 'xt/windows/*.t' ) if $^O =~ 'MSWin32';
Often it is useful to have more control over which tests are executed - and how. You can exercise some degree of control by SKIPping unwanted tests but that can be inefficient and cumbersome for large test suites.
Test::Steering runs test scripts and filters their output into a single, syntactically correct TAP stream. In this way a single test script can be responsible for running multiple other tests.
Test::Steering
The parameters for the TAP::Harness used run the subtests can also be controlled making it possible to, for example, run certain tests in parallel.
At some point in the future it is likely that TAP syntax will be extended to support hierarchical results. See
http://testanything.org/wiki/index.php/Test_Groups http://testanything.org/wiki/index.php/Test_Blocks
for proposed schemes.
When hierarchical TAP is implemented this module will be upgraded to support it.
include_tests
Run one or more tests. Wildcards will be expanded.
include_tests( 'xt/vms/*.t' ) if $^O eq 'VMS'; include_tests( 'xt/windows/*.t' ) if $^O =~ 'MSWin32';
Behind the scenes a new TAP::Harness will be created and used to run the individual test scripts. The output test results are concatenated, tests renumbered and then sent to STDOUT. The net effect of which is that multiple tests are able to masquerade as a single test.
If there are any problems running the tests (TAP syntax errors, non-zero exit status) those will be turned into additional test failures.
In addition to test names you may pass hash references which will be passed to TAP::Harness->new.
TAP::Harness->new
# Run tests in parallel include_tests( { jobs => 9 }, 'xt/parallel/*/t' );
Multiple options hashes may be provided; they will be concatenated.
# Run tests in parallel, enable warnings include_tests( { jobs => 9 }, 'xt/parallel/*/t', { switches => ['-w'] } );
end_plan
Output the trailing plan. Normally there is no need to call end_plan directly: it is called on exit.
tests_run
Get a list of tests that have been run.
my @tests = tests_run();
A number of options may be passed.
use Test::Steering wheel => 'My::Wheel';
add_prefix
Add the name of the current test as a prefix to each result's description.
announce
Output a diagnostic naming each new subtest
defaults
A hash containing default options for include_tests.
wheel
The name of the support class that will be used. Defaults to Test::Steering::Wheel. Use this option to use a custom subclass.
Test::Steering::Wheel
Test::Steering requires no configuration files or environment variables.
None.
None reported.
No bugs have been reported.
Please report any bugs or feature requests to bug-test-steering@rt.cpan.org, or through the web interface at http://rt.cpan.org.
bug-test-steering@rt.cpan.org
Andy Armstrong <andy@hexten.net>
<andy@hexten.net>
Copyright (c) 2007, Andy Armstrong <andy@hexten.net>.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
To install Test::Steering, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::Steering
CPAN shell
perl -MCPAN -e shell install Test::Steering
For more information on module installation, please visit the detailed CPAN module installation guide.