The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Test::CompanionClasses::Engine - run tests defined in companion classes

SYNOPSIS

    use Test::CompanionClasses;
    Test::CompanionClasses->new->run_tests(...);

DESCRIPTION

This is the core of Test::CompanionClasses.

METHODS

new

A constructor per Class::Accessor::Complex's mk_new().

run_tests

Actually runs the companion class tests.

Takes named arguments (as a hash). Recognized keys are:

filter

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.

exact

Works with filter. If this boolean flag is set, the real class name must match exactly, otherwise a substring match is sufficient.

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.

    Test::CompanionClasses->mk_new->run_tests(
        filter => [ qw/Foo::Bar Baz/ ]
        exact  => 1,
    );

will only run the companion tests of Foo::Bar and Baz.

lib

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.

inherited

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.

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.

TAGS

If you talk about this module in blogs, on del.icio.us or anywhere else, please use the testcompanionclasses tag.

BUGS AND LIMITATIONS

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.

INSTALLATION

See perlmodinstall for information and options on installing Perl modules.

AVAILABILITY

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/>.

AUTHOR

Marcel Grünauer, <marcel@cpan.org>

COPYRIGHT AND LICENSE

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.