Test::CompanionClasses::Engine - run tests defined in companion classes
use Test::CompanionClasses; Test::CompanionClasses->new->run_tests(...);
This is the core of Test::CompanionClasses.
Test::CompanionClasses
A constructor per Class::Accessor::Complex's mk_new().
mk_new()
Actually runs the companion class tests.
Takes named arguments (as a hash). Recognized keys are:
A reference to a list of strings that are interpreted as package filters. A companion test class is only run if the corresponding real class' package name matches this filter list.
Works with filter. If this boolean flag is set, the real class name must match exactly, otherwise a substring match is sufficient.
filter
Examples:
Test::CompanionClasses->mk_new->run_tests( filter => [ qw/Foo::Bar Baz/ ] );
will run the companion tests of Foo::Bar, Baz but also Foo::Bar::Flurble, Bazzzz etc.
Foo::Bar
Baz
Foo::Bar::Flurble
Bazzzz
Test::CompanionClasses->mk_new->run_tests( filter => [ qw/Foo::Bar Baz/ ] exact => 1, );
will only run the companion tests of Foo::Bar and Baz.
Sets the directory in and under which run_tests() is looking for test companion classes. Defaults to $Bin/../lib, where $Bin is the location of the program as determined by FindBin. This default is used because normally companion class tests will be run from a perl distribution's t/ directory.
run_tests()
$Bin/../lib
$Bin
t/
You can also specify that other classes not found in lib should be tested. Use a reference to an array of class names as the value for inherited and those classes' companion tests will be run as well. The class names still have to match the filter, if one was specified.
lib
inherited
This is useful if your distribution depends on another one which also has defined test companion classes. If your distribution changes the way these other test companion classes are working, you can inherit those tests to see whether they still work with your distribution.
The method looks for test companion classes in lib and via inherited, loads them, asks them for their plan, that is, how many tests they want to run, then runs them.
If you talk about this module in blogs, on del.icio.us or anywhere else, please use the testcompanionclasses tag.
testcompanionclasses
No bugs have been reported.
Please report any bugs or feature requests to bug-test-companionclasses@rt.cpan.org, or through the web interface at http://rt.cpan.org.
bug-test-companionclasses@rt.cpan.org
See perlmodinstall for information and options on installing Perl modules.
The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit <http://www.perl.com/CPAN/> to find a CPAN site near you. Or see <http://www.perl.com/CPAN/authors/id/M/MA/MARCEL/>.
Marcel Grünauer, <marcel@cpan.org>
<marcel@cpan.org>
Copyright 2007 by Marcel Grünauer
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Test::CompanionClasses, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::CompanionClasses
CPAN shell
perl -MCPAN -e shell install Test::CompanionClasses
For more information on module installation, please visit the detailed CPAN module installation guide.