9
看来,简单地将say
,print
等放入.t
不起作用。输出被隐藏。所以当使用Test::More
和Test::Tester
时,我该如何打印一些东西?我想要这个,所以我可以在确定如何测试的同时玩一些代码。注意:如果它被发送到stderr或者只能使用verbose查看,那么没关系。此外,我用diag
干燥,但似乎没有在测试中的任何地方工作。如何简单地将信息发送到测试中的stdout?
看来,简单地将say
,print
等放入.t
不起作用。输出被隐藏。所以当使用Test::More
和Test::Tester
时,我该如何打印一些东西?我想要这个,所以我可以在确定如何测试的同时玩一些代码。注意:如果它被发送到stderr或者只能使用verbose查看,那么没关系。此外,我用diag
干燥,但似乎没有在测试中的任何地方工作。如何简单地将信息发送到测试中的stdout?
如果您直接运行测试脚本,您将看到print
的输出 - 测试只是Perl代码。但是,如果使用安全带运行测试,则输出中显示的内容将由安全带确定,尤其是其详细级别以及是否打印到STDOUT
或STDERR
。
另一种方式来测试中打印信息,请参阅Diagnostics文档中的Test::More
,值得注意的是:
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;
我某种程度上完全错过了文档中的'note'功能 – xenoterracide 2011-05-28 16:27:15