Test::AllModules - do some tests for modules in search path
use Test::AllModules; BEGIN { all_ok( search_path => 'MyApp', check => sub { my $class = shift; eval "use $class;1;"; }, ); }
Here is also same as above: simplest one.
use Test::AllModules; BEGIN { all_ok( search_path => 'MyApp', use => 1, ); }
Test::AllModules is do some tests for modules in search path.
do check(s) code as Test::More::ok() for every module in search path.
check(s)
Test::More::ok()
search_path => 'Class'
A namespace to look in. see: Module::Pluggable::Object
use => boolean
If this option sets true value then do a load module(use) test.
use
This parameter is optional.
require => boolean
If this option sets true value then do a load module(require) test.
require
check => \&test_code_ref or hash( TEST_NAME => \&test_code_ref )
checks => \@array: include hash( TEST_NAME => \&test_code_ref )
The code to execute each module. The code receives $class and $count. The result from the code is passed to Test::More::ok().
$class
$count
except => \@array: include scalar or qr//
lib => \@array
Additional library paths.
fork => 1:fork, 2:fork and show PID
If this option was set a value(1 or 2) then each check-code executes after forking.
NOTE that this option is NOT supported in Windows system.
shuffle => boolean
If this option was set the true value then modules will be sorted in random order.
show_version => boolean
If this option was set the true value then the version of module will be shown.
if you need the name of test
use Test::AllModules; BEGIN { all_ok( search_path => 'MyApp', check => +{ 'use_ok' => sub { my $class = shift; eval "use $class;1;"; }, }, ); }
actually the count is also passed
use Test::AllModules; BEGIN { all_ok( search_path => 'MyApp', check => sub { my ($class, $count) = @_; eval "use $class;1;"; }, ); }
more tests, all options
use Test::AllModules; BEGIN { all_ok( search_path => 'MyApp', use => 1, require => 1, checks => [ +{ 'use_ok' => sub { my $class = shift; eval "use $class;1;"; }, }, ], except => [ 'MyApp::Role', qr/MyApp::Exclude::.*/, ], lib => [ 'lib', 't/lib', ], shuffle => 1, fork => 1, ); }
Test::AllModules is hosted on github <http://github.com/bayashi/Test-AllModules>
dann
Dai Okabayashi <bayashi@cpan.org>
Test::LoadAllModules
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
To install Test::AllModules, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::AllModules
CPAN shell
perl -MCPAN -e shell install Test::AllModules
For more information on module installation, please visit the detailed CPAN module installation guide.