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.