似乎只需将say
,print
等放入.t
即可。输出被隐藏。因此,在使用Test::More
和Test::Tester
时,我怎样才能简单地打印一些东西?我想要这个,所以我可以在确定如何测试时使用一些代码。注意:如果将它发送到stderr或只能使用详细信息查看,则可以。我也使用diag
进行干燥,但在测试的任何地方似乎都不起作用。
答案 0 :(得分:14)
如果直接运行测试脚本,您将看到print
的输出 - 测试只是Perl代码。但是,如果使用线束运行测试,则输出中显示的内容将由线束确定,尤其是其详细级别,以及是否打印到STDOUT
或STDERR
。
有关在测试中打印消息的另一种方法,请参阅Test::More
文档中的Diagnostics,特别是:
diag(...);
note(...);
尝试使用这样的脚本可以快速说明工作原理:
# Example usages:
# perl some_test.t # We see everything in output.
# prove some_test.t # We see only diag() and STDERR.
# prove -v some_test.t # Everything again.
# In some_test.t
use strict;
use warnings;
use Test::More;
pass;
diag("diag()");
note("note()");
print "STDOUT\n";
print STDERR "STDERR\n";
done_testing;