Provided by: libtest-strict-perl_0.14-1_all bug

NAME

       Test::Strict - Check syntax, presence of use strict; and test coverage

SYNOPSIS

       "Test::Strict" lets you check the syntax, presence of "use strict;" and presence "use
       warnings;" in your perl code.  It report its results in standard "Test::Simple" fashion:

         use Test::Strict tests => 3;
         syntax_ok( 'bin/myscript.pl' );
         strict_ok( 'My::Module', "use strict; in My::Module" );
         warnings_ok( 'lib/My/Module.pm' );

       Module authors can include the following in a t/strict.t and have "Test::Strict"
       automatically find and check all perl files in a module distribution:

         use Test::Strict;
         all_perl_files_ok(); # Syntax ok and use strict;

       or

         use Test::Strict;
         all_perl_files_ok( @mydirs );

       "Test::Strict" can also enforce a minimum test coverage the test suite should reach.
       Module authors can include the following in a t/cover.t and have "Test::Strict"
       automatically check the test coverage:

         use Test::Strict;
         all_cover_ok( 80 );  # at least 80% coverage

       or

         use Test::Strict;
         all_cover_ok( 80, 't/' );

DESCRIPTION

       The most basic test one can write is "does it compile ?".  This module tests if the code
       compiles and play nice with "Test::Simple" modules.

       Another good practice this module can test is to "use strict;" in all perl files.

       By setting a minimum test coverage through "all_cover_ok()", a code author can ensure his
       code is tested above a preset level of kwality throughout the development cycle.

       Along with Test::Pod, this module can provide the first tests to setup for a module
       author.

       This module should be able to run under the -T flag for perl >= 5.6.  All paths are
       untainted with the following pattern: "qr|^([-+@\w./:\\]+)$|" controlled by
       $Test::Strict::UNTAINT_PATTERN.

FUNCTIONS

   syntax_ok( $file [, $text] )
       Run a syntax check on $file by running "perl -c $file" with an external perl interpreter.
       The external perl interpreter path is stored in $Test::Strict::PERL which can be modified.
       You may prefer "use_ok()" from Test::More to syntax test a module.  For a module, the path
       (lib/My/Module.pm) or the name (My::Module) can be both used.

   strict_ok( $file [, $text] )
       Check if $file contains a "use strict;" statement.  "use Moose" and "use Mouse" are also
       considered valid.

       This is a pretty naive test which may be fooled in some edge cases.  For a module, the
       path (lib/My/Module.pm) or the name (My::Module) can be both used.

   warnings_ok( $file [, $text] )
       Check if warnings have been turned on.

       If $file is a module, check if it contains a "use warnings;" or "use warnings::..."  or
       "use Moose" or "use Mouse" statement.  If the perl version is <= 5.6, this test is skipped
       ("use warnings" appeared in perl 5.6).

       If $file is a script, check if it starts with "#!...perl -w".  If the -w is not found and
       perl is >= 5.6, check for a "use warnings;" or "use warnings::..."  or "use Moose" or "use
       Mouse" statement.

       This is a pretty naive test which may be fooled in some edge cases.  For a module, the
       path (lib/My/Module.pm) or the name (My::Module) can be both used.

   all_perl_files_ok( [ @directories ] )
       Applies "strict_ok()" and "syntax_ok()" to all perl files found in @directories (and sub
       directories).  If no <@directories> is given, the starting point is one level above the
       current running script, that should cover all the files of a typical CPAN distribution.  A
       perl file is *.pl or *.pm or *.t or a file starting with "#!...perl"

       If the test plan is defined:

         use Test::Strict tests => 18;
         all_perl_files_ok();

       the total number of files tested must be specified.

       You can control which tests are run on each perl site through:

         $Test::Strict::TEST_SYNTAX   (default = 1)
         $Test::Strict::TEST_STRICT   (default = 1)
         $Test::Strict::TEST_WARNINGS (default = 0)
         $Test::Strict::TEST_SKIP     (default = []) "Trusted" files to skip

   all_cover_ok( [coverage_threshold [, @t_dirs]] )
       This will run all the tests in @t_dirs (or current script's directory if @t_dirs is undef)
       under Devel::Cover and calculate the global test coverage of the code loaded by the tests.
       If the test coverage is greater or equal than "coverage_threshold", it is a pass,
       otherwise it's a fail. The default coverage threshold is 50 (meaning 50% of the code
       loaded has been covered by test).

       The threshold can be modified through $Test::Strict::COVERAGE_THRESHOLD.

       You may want to select which files are selected for code coverage through
       $Test::Strict::DEVEL_COVER_OPTIONS, see Devel::Cover for the list of available options.
       The default is '+ignore,"/Test/Strict\b"'.

       The path to "cover" utility can be modified through $Test::Strict::COVER.

       The 50% threshold is a completely arbitrary value, which should not be considered as a
       good enough coverage.

       The total coverage is the return value of "all_cover_ok()".

CAVEATS

       For "all_cover_ok()" to work properly, it is strongly advised to install the most recent
       version of Devel::Cover and use perl 5.8.1 or above.  In the case of a "make test"
       scenario, "all_perl_files_ok()" re-run all the tests in a separate perl interpreter, this
       may lead to some side effects.

SEE ALSO

       Test::More, Test::Pod. Test::Distribution, <Test:NoWarnings>

AUTHOR

       Pierre Denis, "<pdenis@gmail.com>".

COPYRIGHT

       Copyright 2005, 2010 Pierre Denis, All Rights Reserved.

       You may use, modify, and distribute this package under the same terms as Perl itself.