我写了一个简单的Perl测试用例示例:
use Test::More;
is(2 + 4, 5, "Addition check");
屏幕上的输出:
Failed test 'Addition check'
at t/simpel_perl_test.t line 2.
got: '6'
expected: '5'
现在我想在日志文件和屏幕上打印一条消息?
我无法在<test case name>.t
中使用现有的Perl模块IO::Tee
来实现我的需求。
您能告诉我如何在Perl测试用例中在屏幕和日志文件中编写消息吗?
使用的命令:
prove -r --timer t/simpel_perl_test.t :: -d
IO::Capture
模块的编写正是为了在测试执行期间执行此操作。从阅读IO::Capture::Overview
开始。但是,您似乎希望将测试线束输出发送到文件中。也许您想为prove
提供一个可以写入文件的格式化程序参数。您可以使用cat
对文件进行prove
调用。尝试使用TAP::Formatter::File模块作为参数,尽管我不太清楚文件是如何命名的。
使用tee
命令不是最好吗?
$ prove -r --timer simple_perl_test.t :: -d |tee simple_perl_test.txt
[02:08:12] simple_perl_test.t .. ok 24 ms ( 0.00 usr 0.00 sys + 0.02 cusr 0.00 csys = 0.02 CPU)
[02:08:12]
All tests successful.
Files=1, Tests=1, 0 wallclock secs ( 0.02 usr 0.01 sys + 0.02 cusr 0.00 csys = 0.05 CPU)
Result: PASS
$ cat simple_perl_test.txt
[02:08:12] simple_perl_test.t .. ok 24 ms ( 0.00 usr 0.00 sys + 0.02 cusr 0.00 csys = 0.02 CPU)
[02:08:12]
All tests successful.
Files=1, Tests=1, 0 wallclock secs ( 0.02 usr 0.01 sys + 0.02 cusr 0.00 csys = 0.05 CPU)
Result: PASS
$