2011-05-28 85 views
9

看來,簡單地將say,print等放入.t不起作用。輸出被隱藏。所以當使用Test::MoreTest::Tester時,我該如何打印一些東西?我想要這個,所以我可以在確定如何測試的同時玩一些代碼。注意:如果它被髮送到stderr或者只能使用verbose查看,那麼沒關係。此外,我用diag乾燥,但似乎沒有在測試中的任何地方工作。如何簡單地將信息發送到測試中的stdout?

回答

13

如果您直接運行測試腳本,您將看到print的輸出 - 測試只是Perl代碼。但是,如果使用安全帶運行測試,則輸出中顯示的內容將由安全帶確定,尤其是其詳細級別以及是否打印到STDOUTSTDERR

另一種方式來測試中打印信息,請參閱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; 
+0

我某種程度上完全錯過了文檔中的'note'功能 – xenoterracide 2011-05-28 16:27:15

相關問題