- TEST PLATFORM CONFIGURATION
- SEE ALSO
- LICENSE AND COPYRIGHT
brewbuild - Automate module and reverse-dependency testing, on Windows and Unix
You must be in the root directory of the distribution you want to test.
Run all unit tests against all installed instances with no other action. Upon a FAIL, a log file will be generated in the current working directory named
brewbuild # output 5.8.9 :: PASS 5.20.3 :: FAIL 5.22.1 :: PASS
Run tests on the local working copy of the current module, then run all tests of all reverse dependencies of this module (as reported by CPAN), to ensure the down river modules will work with your new build. In this case, FAILs are stored in
brewbuild -R # output, in my Mock::Sub repo directory reverse dependencies: Test-BrewBuild, File-Edit-Portable, Devel-Examine-Subs, Devel-Trace-Subs Test::BrewBuild 5.18.4 :: FAIL 5.22.1 :: PASS File::Edit::Portable 5.18.4 :: PASS 5.22.1 :: PASS Devel::Examine::Subs 5.18.4 :: PASS 5.22.1 :: PASS Devel::Trace::Subs 5.18.4 :: PASS 5.22.1 :: PASS
Send a basic test run to remote testers (see
bbdispatch for more complex dispatching):
brewbuild -D -t localhost -t 192.168.252.90 -t 192.168.252.96 -t 192.168.252.95 192.168.252.95 - x86_64-linux 5.22.1 :: PASS 192.168.252.90 - MSWin32-x64-multi-thread 5.18.4 :: PASS 5.22.1 :: PASS localhost - MSWin32-x64-multi-thread 5.22.1 :: FAIL 192.168.252.96 - amd64-freebsd 5.22.1 :: PASS 5.23.7 :: PASS 5.8.9 :: FAIL 5.10.1 :: FAIL 5.18.4 :: FAIL
All FAIL log files are stored locally when dispatching to identify the issues:
192.168.252.96_5.10.1-FAIL.bblog 192.168.252.96_5.18.4-FAIL.bblog 192.168.252.96_5.8.9-FAIL.bblog localhost_5.22.1-FAIL.bblog
Print usage information
Display test platform setup instructions for Unix and Windows
brewbuild script installed by the Test::Brewbuild module allows you to perform your unit tests seamlessly across all of your Perlbrew (Unix) or Berrybrew (Windows) Perl instances, as well as test all of your down-river CPAN modules that rely on your module against the locally updated version, with support for ExtUtils::MakeMaker, Module::Build and Dist::Zilla distributions.
It also allows you to dispatch basic test runs to remote testing servers.
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 and install specific versions.
All unit tests are run against all installed
perl instances, unless otherwise specified.
Many of the options listed below can be saved in a configuration file if you want to set them permanently, or override defaults. Arguments passed in on the command line override those in the configuration file. See configuration file docs.
Perl version number to run against (can be supplied multiple times). Can not be used on Windows at this time.
Run tests, install, then run tests on all CPAN reverse dependency modules.
0-7, sets logging verbosity, default is 0.
How many random versions of perl to install (-1 to install all). On Windows, we'll default to installing 64-bit versions only, if a 64 bit perl is available for the version desired. See the
--install flag if you'd like to install 32-bit versions, where both versions are present.
Number portion of an available perl version according to
*brew available. Multiple versions can be sent in at once.
On Windows, by default, we install only 64-bit versions. You can append the
_64 suffixes as displayed by
berrybrew available to override the default. If you're dispatching to both Unix and Windows systems, we'll strip this suffix on the Unix systems before performing any actions.
Remove all installed perls (less the currently used one).
Sends a basic test run to remote
Test::BrewBuild test servers, which are specified with the
-t|--tester flag. We'll get the repository inforation out of your current working directory, and simply run
brewbuild with no arguments on the testers (all other flags are removed if
-D is used).
For more expansive dispatching functionality, see bbdispatch.
Used only with the
-D flag, specify a tester for the dispatcher to dispatch to, in the form
Do not run tests. Allows you to
--install without testing.
By default, we save logs of
FAIL result logs into the
bblog directory. With this flag, we'll save both the
FAIL logs along with all the
PASS logs as well.
Operate on perls less than 5.8.x. The default plugins won't work with this flag set if a lower version is installed.
Optional module name of the exec command plugin to use. You can also specify a file name if the module is not installed.
The default plugin if not specified is Test::BrewBuild::Plugin::DefaultExec. There are a few other plugins found in this distribution's author's CPAN collection.
One very similar to this one that performs the same actions but enables CPAN Author tests (
RELEASE_TESTING=1) and attempts to install distributions related to these tests is Test::BrewBuild::Plugin::Author. This may be worth setting in the configuration file.
List of args to pass into the plugin (one arg per loop).
Perlbrew fetches it's available information from the Internet. By default, we fetch it from there the first time, then cache that information for the remaining duration of the program run.
Set this flag to disable this caching.
Test::BrewBuild development testing only. Prevents recursive test loops.
Display test platform setup instructions.
Print out the command line usage information.
Test::BrewBuild test platform configuration guide
Install perlbrew and related requirements:
cpanm App::perlbrew perlbrew install-patchperl perlbrew install-cpanm
Install and switch to your base perl instance, and install
perlbrew install 5.22.1 perlbrew switch 5.22.1 cpanm Test::BrewBuild
Download/install git for Windows:
Create a repository directory, and enter it:
mkdir c:\repos cd c:\repos
Clone and configure berrybrew
git clone https://github.com/stevieb9/berrybrew cd berrybrew bin\berrybrew.exe config (type 'y' when asked to install in PATH)
Close the current CMD window and open a new one to update the PATH environment variable.
Check available perls, and install one that'll become your core base install:
berrybrew available berrybrew install 5.22.1_64 berrybrew switch 5.22.1_64
Open another new CMD window, and make sure the new Perl is in use:
<steveb at cpan.org>
You can find documentation for this script and module with the perldoc command.
perldoc brewbuild perldoc Test::BrewBuild
Documentation for the remote testing service script, and its API:
perldoc bbtester perldoc Test::BrewBuild::Tester
Documentation for the test dispatching script and its API:
perldoc bbdispatch perldoc Test::BrewBuild::Dispatch
Berrybrew for Windows:
Perlbrew for Unixes:
Remote testing server utility:
Remote testing server API:
Dispatching to remote testers:
brewbuild -h, in the
Dispatching Server options section.
Copyright 2017 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.