-
-
16 Jun 2019 09:13:14 UTC
- Distribution: Test-Strict
- Module version: 0.52
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Repository
- Issues
- Testers (4041 / 2 / 0)
- Kwalitee
Bus factor: 2- 74.71% Coverage
- License: perl_5
- Perl: v5.6.0
- Activity
24 month- Tools
- Download (20.44KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- File::Find
- File::Spec
- File::Temp
- FindBin
- Test::Builder
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
NAME
Test::Strict - Check syntax, presence of use strict; and test coverage
VERSION
Version 0.52
SYNOPSIS
Test::Strict
lets you check the syntax, presence ofuse strict;
and presenceuse 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 haveTest::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 runningperl -c $file
with an external perl interpreter. The external perl interpreter path is stored in$Test::Strict::PERL
which can be modified. You may preferuse_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 ause strict;
statement.use Moose
anduse Mouse
are also considered valid. use Modern::Perl is also accepted.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.
modules_enabling_strict
Experimental. Returning a list of modules and pragmata that enable strict. To modify this list, change
@Test::Strict::MODULES_ENABLING_STRICT
.List taken from Module::CPANTS::Kwalitee::Uses v95
modules_enabling_warnings
Experimental. Returning a list of modules and pragmata that enable warnings To modify this list, change
@Test::Strict::MODULES_ENABLING_WARNINGS
.List taken from Module::CPANTS::Kwalitee::Uses v95
warnings_ok( $file [, $text] )
Check if warnings have been turned on.
If
$file
is a module, check if it contains ause warnings;
oruse warnings::...
oruse Moose
oruse Mouse
statement. use Modern::Perl is also accepted. 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 ause warnings;
oruse warnings::...
oruse Moose
oruse Mouse
statement. use Modern::Perl is also accepted.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()
andsyntax_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 amake 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
REPOSITORY
https://github.com/manwar/Test-Strict
AUTHOR
Pierre Denis,
<pdenis@gmail.com>
.MAINTAINER
Currently maintained by Mohammad S Anwar (MANWAR),
<mohammad.anwar at yahoo.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.
Module Install Instructions
To install Test::Strict, copy and paste the appropriate command in to your terminal.
cpanm Test::Strict
perl -MCPAN -e shell install Test::Strict
For more information on module installation, please visit the detailed CPAN module installation guide.