Perl::Critic::Policy::TestingAndDebugging::inprogressProhibitTestPrint - don't use arbitrary prints in a test script
This policy is part of the Perl::Critic::Pulp addon. It asks you not to use a raw print in a test script to avoid any chance of confusing the test parsers.
print
print "now doing $some $thing\n"; # bad
Either a # for a comment or diag from Test::More is better.
#
diag
Test::More
print "# a comment about $some $thing\n"; # ok use Test::More; diag "blah blah blah"; # ok
diag has the advantage that it will insert # comment after any newlines in the output too.
Various prints for explicit test output are allowed,
print "ok 1\n" # ok print "not ok 2 - some reason\n" # ok print "pragma +something\n" # ok print "Bail out\n" # ok
commentize is that it guarantees the output won't be misinterpreted by the test harnesses, see "Diagnostics" in Test::More.
print "ok now we're starting\n"; # bad print STDERR "something\n"; # bad # handles for test file setups ok print TESTFH "some data"; # ok and is under the C<tests> theme (see L<Perl::Critic/POLICY THEMES>).
As with all things perlcritic, it's largely a matter of personal preference whether you want this actively enforced. If you're happy to be careful with your prints then disable this policy from your .perlcriticrc file in the usual way (see "CONFIGURATION" in Perl::Critic),
[-TestingAndDebugging::inprogressProhibitTestPrint]
A print to an unspecified destination is assumed to be stdout. If you use select to go to a test datafile or similar then this assumption will be wrong. Hopefully that sort of thing is rare.
select
select MYTESTHANDLE; print 123; # reported, but actually ok
Perl::Critic::Pulp, Perl::Critic
http://user42.tuxfamily.org/perl-critic-pulp/index.html
Copyright 2008, 2009, 2010, 2011 Kevin Ryde
Perl-Critic-Pulp is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
Perl-Critic-Pulp is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Perl-Critic-Pulp. If not, see http://www.gnu.org/licenses.
To install Perl::Critic::Pulp, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Perl::Critic::Pulp
CPAN shell
perl -MCPAN -e shell install Perl::Critic::Pulp
For more information on module installation, please visit the detailed CPAN module installation guide.