Perl 如何在测试中简单地向标准输出发送信息?

Perl 如何在测试中简单地向标准输出发送信息?,perl,testing,Perl,Testing,简单地把比如说,打印等放到.t中似乎是行不通的。输出是隐藏的。因此,当使用Test::More和Test::Tester时,我如何简单地打印一些东西?我想要这个,这样我就可以在决定如何测试它的同时使用一些代码。注意:如果它被发送到stderr或者只能使用verbose查看,那么就可以了。此外,我还使用了diag,但这在测试的任何地方似乎都不起作用。如果直接运行测试脚本,您将看到print的输出——测试只是Perl代码。但是,如果您使用线束运行测试,那么您在输出中看到的内容将取决于线束,尤其是其详

简单地把
比如说
打印
等放到
.t
中似乎是行不通的。输出是隐藏的。因此,当使用
Test::More
Test::Tester
时,我如何简单地打印一些东西?我想要这个,这样我就可以在决定如何测试它的同时使用一些代码。注意:如果它被发送到stderr或者只能使用verbose查看,那么就可以了。此外,我还使用了
diag
,但这在测试的任何地方似乎都不起作用。

如果直接运行测试脚本,您将看到
print
的输出——测试只是Perl代码。但是,如果您使用线束运行测试,那么您在输出中看到的内容将取决于线束,尤其是其详细程度,以及您是打印到
STDOUT
还是
STDERR

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

还可以查看
diag explain…
以轻松输出更复杂的数据结构