Test::BrewBuild - Perl/Berry brew unit testing automation, with remote tester dispatching capabilities.
This module is the backend for the brewbuild script that is accompanied by this module.
brewbuild
It provides you the ability to perform your unit tests across all of your Perlbrew (Unix) or Berrybrew (Windows) Perl instances.
For Windows, you'll need to install Berrybrew (see "SEE ALSO" for details). For Unix, you'll need Perlbrew.
It allows you to remove and reinstall on each test run, install random versions of perl, or install specific versions.
All unit tests are run against all installed instances.
use Test::BrewBuild; my $bb = Test::BrewBuild->new; my @perls_available = $bb->perls_available; my @perls_installed = $bb->perls_installed; # remove all currently installed instances of perl, less the one you're # using $bb->instance_remove; # install four new random versions of perl $bb->instance_install(4); # install two specific versions $bb->instance_install(['5.10.1', '5.20.3']); # find and test against all the current module's reverse CPAN dependencies $bb->revdep; # run the unit tests of the current module only $bb->test;
Returns a new Test::BrewBuild object. See the documentation for the brewbuild script to understand what the arguments are and do.
Test::BrewBuild
Returns in string form the full output of *brew available.
*brew available
Returns an array containing all perls available, whether already installed or not.
Returns an array of the names of all perls currently installed under your *brew setup.
*brew
If an integer is sent in, we'll install that many random versions of perl. You can also send in an array reference, where each element is a version of perl, and we'll install those instead.
Uninstalls all currently installed perls, less the one you are currently switched or used to.
switch
use
Processes and returns the test results as a string scalar of the distribution located in the current working directory.
Returns a list of the reverse dependencies (according to CPAN) that the module you're working on in the current working directory have.
Loops over all of the current module's reverse dependencies, and executes test() on each one at a time. This helps you confirm whether your new build won't break your downstream users' modules.
test()
By default, we don't install perl versions less than v5.8.0. Pass in a true value to override this default.
Takes a hash reference of the command-line argument list, and converts it into a hash of the translated Test::BrewBuild parameters along with their values.
Returns the converted hash for passing back into new().
new()
Returns a string that contains the path/filename of the configuration file, if available.
Fetches and installs a custom plugin which contains the code that perlbrew/berrybrew exec will execute. If not used or the module specified can't be located (or it contains errors), we fall back to the default bundled Test::BrewBuild::Plugin::DefaultExec (which is the canonical example for writing new plugins).
perlbrew/berrybrew exec
Note that you can send in a custom plugin *.pm filename to plugin as opposed to a module name if the module isn't installed. If the file isn't in the current working directory, send in the relative or full path.
*.pm
Helper method, returns true if the current OS is Windows, false if not.
Returns an instance of the packages log object for creating child log objects.
Sets up the object with a temporary directory used for test logs, that will be removed after the run.
Returns the brewbuild working directory.
Prints out detailed information on setting up a testing environment, on Windows and Unix.
Displays the brewbuild command line usage information.
Steve Bertrand, <steveb at cpan.org>
<steveb at cpan.org>
Any and all feedback and help is appreciated. A Pull Request is the preferred method of receiving changes (https://github.com/stevieb9/p5-test-brewbuild), but regular patches through the bug tracker, or even just email discussions are welcomed.
https://github.com/stevieb9/p5-test-brewbuild/issues
You can find documentation for this module and its accompanying script with the perldoc command:
perldoc Test::BrewBuild perldoc brewbuild
Berrybrew for Windows:
https://github.com/dnmfarrell/berrybrew
Perlbrew for Unixes:
http://perlbrew.pl
Copyright 2016 Steve Bertrand.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.
To install Test::BrewBuild, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::BrewBuild
CPAN shell
perl -MCPAN -e shell install Test::BrewBuild
For more information on module installation, please visit the detailed CPAN module installation guide.