# NAME

Test::Class::GetoptControl - command-line control of test class execution

# SYNOPSIS

    package MyApp;
    use base qw(Test::Class::GetoptControl);

    package main;
    my $app = MyApp->new;
    $app->runtests;

on the command-line:

    $ myapp --include FooTests --shuffle
    # test order: shuffle
    ok 1 - foobar

# DESCRIPTION

When inheriting from this class, your application gets the ability to control
the execution of test classes using command-line options.

# COMMAND-LINE OPTIONS

- `--include`

This option takes a string and can be given several times. It says that only
classes whose package name contains the string should be run. `-i` is an
alias for this option. If no `include` option is given, all test classes are
run.

Examples:

    $ myapp --include Foo
    $ myapp -i Foo
    $ myapp --include Foo --include Bar

- `--shuffle`

This options causes the test classes to be run in a random order. A note
saying so is printed as well.

- `--reverse`

This options causes the test classes to be run in reverse alphabetical package
name order. If neither `--reverse` nor `--shuffle` are given, tests are run
in alphabetical package name order. If both `--reverse` and `--shuffle` are
given, `--shuffle` takes precedence and a note saying so is printed.

In any case, a note specifying the sort order is printed.

# METHODS

- `runtests`

Calls `get_classes()` to determine which test classes to run and in which
order, then runs them.

- `get_classes`

Asks [Test::Class](http://search.cpan.org/perldoc?Test::Class) for information on all registered test classes, then
filters and sorts them by the criteria set in the command-line options.

- `GETOPT`

Defines the specific command-line options for this class; see
[Getopt::Inherited](http://search.cpan.org/perldoc?Getopt::Inherited).

# BUGS AND LIMITATIONS

No bugs have been reported.

Please report any bugs or feature requests 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://search.cpan.org/dist/Test-Class-GetoptControl/>.

The development version lives at
<http://github.com/hanekomu/test-class-getoptcontrol/>.  Instead of sending
patches, please fork this project using the standard git and github
infrastructure.

# AUTHORS

Marcel Gr&uuml;nauer, `<marcel@cpan.org>`

# COPYRIGHT AND LICENSE

Copyright 2009 by Marcel Gr&uuml;nauer

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.