當我使用prove
實用程序運行perl測試時,如果測試方法包含print
未被換行符終止的語句,則失敗。測試失敗,證明它是否寫入stdout而不換行
use Test::More tests=>1;
ok(foo(), "calling foo");
sub foo{
print "A";
1;
}
這導致
Bad plan. You planned 1 tests but ran 0.
如果我追加一個新行:print "A\n";
測試通過。 (請注意,如果我只是執行測試perl mytest.t
而不是使用prove
它會以任一方式通過)。
任何想法,爲什麼這可能是,以及如何解決它?
請參閱http://stackoverflow.com/q/1538260/1030675 「print」的輸出會干擾「證明」期望的內容。 – choroba 2012-01-16 12:56:22