2011-05-28 49 views
9

看来,简单地将say,print等放入.t不起作用。输出被隐藏。所以当使用Test::MoreTest::Tester时,我该如何打印一些东西?我想要这个,所以我可以在确定如何测试的同时玩一些代码。注意:如果它被发送到stderr或者只能使用verbose查看,那么没关系。此外,我用diag干燥,但似乎没有在测试中的任何地方工作。如何简单地将信息发送到测试中的stdout?

回答

13

如果您直接运行测试脚本,您将看到print的输出 - 测试只是Perl代码。但是,如果使用安全带运行测试,则输出中显示的内容将由安全带确定,尤其是其详细级别以及是否打印到STDOUTSTDERR

另一种方式来测试中打印信息,请参阅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; 
+0

我某种程度上完全错过了文档中的'note'功能 – xenoterracide 2011-05-28 16:27:15

相关问题