9
看來,簡單地將say
,print
等放入.t
不起作用。輸出被隱藏。所以當使用Test::More
和Test::Tester
時,我該如何打印一些東西?我想要這個,所以我可以在確定如何測試的同時玩一些代碼。注意:如果它被髮送到stderr或者只能使用verbose查看,那麼沒關係。此外,我用diag
乾燥,但似乎沒有在測試中的任何地方工作。如何簡單地將信息發送到測試中的stdout?
看來,簡單地將say
,print
等放入.t
不起作用。輸出被隱藏。所以當使用Test::More
和Test::Tester
時,我該如何打印一些東西?我想要這個,所以我可以在確定如何測試的同時玩一些代碼。注意:如果它被髮送到stderr或者只能使用verbose查看,那麼沒關係。此外,我用diag
乾燥,但似乎沒有在測試中的任何地方工作。如何簡單地將信息發送到測試中的stdout?
如果您直接運行測試腳本,您將看到print
的輸出 - 測試只是Perl代碼。但是,如果使用安全帶運行測試,則輸出中顯示的內容將由安全帶確定,尤其是其詳細級別以及是否打印到STDOUT
或STDERR
。
另一種方式來測試中打印信息,請參閱Diagnostics文檔中的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;
我某種程度上完全錯過了文檔中的'note'功能 – xenoterracide 2011-05-28 16:27:15