5

当我使用该实用程序运行 perl 测试时prove,如果被测方法包含print未被换行符终止的语句,它将失败。

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它通过任何一种方式)。

任何想法为什么会这样,以及如何解决它?

4

1 回答 1

2

我找到了一个快速的解决方法:

$|=0;     # no auto-flush

...但我不知道(还)为什么会这样。

于 2012-01-16T14:25:02.973 回答