NAME
Test::Pod::CoverageChange - Test Perl files for POD coverage and syntax changes
SYNOPSIS
use Test::Pod::CoverageChange qw(pod_coverage_syntax_ok);
pod_coverage_syntax_ok('lib', {
MyModule::Bar => 3, ## expected to have 3 naked subs
MyModule::Foo => 10, ## expected to have 10 naked subs
MyModule::Baz => 1, ## expected to have 1 naked subs
MyModule::Qux => 5, ## expected to have 5 naked subs
}, [
We::Ignore::ThisModule,
We::Also::Ignore::This::Module
],[
'a_sub_name_to_ignore'
qr/regexes are also acceptable/
]);
DESCRIPTION
Test::Pod::CoverageChange
is a helper combining Test::Pod::Coverage and Pod::Checker to test for both POD coverage and syntax changes for a module distribution at once, via a single call to "pod_coverage_syntax_ok".
Possible results
passes if the file has no POD syntax or coverage error.
fails if latest changes increased/decreased numbers of naked subs for the packages that have allowed naked subs.
fails if a package allowed to have naked subs has 100% POD coverage.
fails if a file in a given path has POD syntax error or has no POD.
Ignores packages that passed as ignored package in the c<$ignored_package> argument into the pod_coverage_syntax_ok sub.
pod_coverage_syntax_ok
Checks all the modules under a given directory against POD coverage and POD syntax
$path
- path or arrayref of directories to check (recursively)example: ['lib', 'other directory'] | 'lib'
$allowed_naked_packages
- hashref of number of allowed naked subs, keyed by package name (optional)example: {Package1 => 2, Package2 => 1, Package3 => 10}
$ignored_packages
- arrayref of packages that will be ignored in the checks (optional)example: ['MyPackage1', 'MyPackage2', 'MyPackage3']
$ignored_subs
- arrayref of subnames or regexes that will be ignored in the checks (optional)example: ['a_sub_name', qr/a regex/]
_check_pod_coverage
Checks POD coverage for all the modules that exist under the given directory. Passes the $allowed_naked_packages
to "_check_allowed_naked_packages" in Test::Pod::CoverageChange. Ignores the packages in the $ignored_packages
parameter.
$path
- path or arrayref of directories to check (recursively)$allowed_naked_packages
- hashref of number of allowed naked subs, keyed by package name (optional)$ignored_packages
- arrayref of packages that will be ignored in the checks (optional)
_check_pod_syntax
Check POD syntax for all the modules that exist under the given directory.
$path
- path or arrayref of directories to check (recursively)$ignored_packages
- arrayref of packages that will be ignored in the checks (optional)
_check_allowed_naked_packages
Checks passed allowed_naked_packages against existing package files.
$allowed_naked_packages
- hashref of number of allowed naked subs, keyed by package name (optional)$ignored_packages
- a list of packages that will be ignored in our checks, supports arrayref (optional)
Possible results
todo fail if the numbers of existing naked subs are equal to passed value.
fails if the number of existing naked subs are not equal to the passed value.
fails if a package has 100% POD coverage and it passed as a $allowed_naked_package.