NAME

Test::Stream::Bundle - Tools to help you write custom bundles.

DEPRECATED

This distribution is deprecated in favor of Test2, Test2::Suite, and Test2::Workflow.

See Test::Stream::Manual::ToTest2 for a conversion guide.

DESCRIPTION

You can reduce your boilerplate by writing your own Test::Stream bundles. A bundle is a set of plugins that get loaded all at once to your specifications.

SYNOPSIS

    package Test::Stream::Bundle::MyBundle;
    use strict;
    use warnings;

    # Gives us an 'import' method that allows this module to be used directly
    # if desired.
    use Test::Stream::Bundle qw/import/;

    sub plugins {
        return (
            qw{
                IPC
                TAP
                ExitSummary
                Core
                Context
                Exception
                Warnings
                Compare
                Mock
            },
        );
    }

EXPORTS

$class->import()

This import() method gets called when your plugin isused directly use Test::Stream::Bundle::MyBundle. Doing so will load all the specified plugins.

EXPECTED METHODS

@list = $class->plugins()

The plugins() method should return a list of plugins to load. It can also return coderefs which will be run with the original caller arrayref as their only argument.

    sub plugins {
        return (
            qw/Core TAP .../,
            sub {
                my $caller = shift;

                # Package, file, and line that requested the bundle be used.
                my ($pkg, $file, $line) = @$caller;

                ...
            },
        );
    }

SOURCE

The source code repository for Test::Stream can be found at http://github.com/Test-More/Test-Stream/.

MAINTAINERS

Chad Granum <exodist@cpan.org>

AUTHORS

Chad Granum <exodist@cpan.org>

COPYRIGHT

Copyright 2015 Chad Granum <exodist7@gmail.com>.

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

See http://dev.perl.org/licenses/