如何在测试中简单地将信息发送到stdout?

时间:2011-05-28 15:40:09

标签: perl testing

似乎只需将sayprint等放入.t即可。输出被隐藏。因此,在使用Test::MoreTest::Tester时,我怎样才能简单地打印一些东西?我想要这个,所以我可以在确定如何测试时使用一些代码。注意:如果将它发送到stderr或只能使用详细信息查看,则可以。我也使用diag进行干燥,但在测试的任何地方似乎都不起作用。

1 个答案:

答案 0 :(得分:14)

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

有关在测试中打印消息的另一种方法,请参阅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;