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…
以轻松输出更复杂的数据结构