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

xen*_*ide 11 testing perl

看来,干脆把say,print等成.t不起作用.输出被隐藏.因此,在使用的时候Test::MoreTest::Tester我怎么能简单地打印的东西吗?我想要这个,所以我可以在确定如何测试时使用一些代码.注意:如果将它发送到stderr或只能使用详细信息查看,则可以.我也使用干燥,diag但似乎在测试的任何地方都没有用.

FMc*_*FMc 14

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

有关在测试中打印消息的另一种方法,请参阅文档中的诊断Test::More,特别是:

diag(...);
note(...);
Run Code Online (Sandbox Code Playgroud)

尝试使用这样的脚本可以快速说明工作原理:

# 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;
Run Code Online (Sandbox Code Playgroud)