Subscribed unsubscribe Subscribe Subscribe

Test::Flattenでsubtestの初っ端で死ぬときのエラーが出力されない (追記あり)

@さんのTest::Flattenを使ってみている。

use Test::More;
use Test::Flatten;

subtest 'hoge' => sub {
    ok 1, 'fuga';
    piyo();
};

done_testing;

という、subtest内で死んでしまうようなテストの場合、proveを実行すると

$ prove -v
t/01_hoge.t ..
# ------------------------------------------------------------------------------
# hoge
# ------------------------------------------------------------------------------
ok 1 - fuga
Undefined subroutine &main::piyo called at t/01_hoge.t line 6.
# Tests were run but no plan was declared and done_testing() was not seen.
Dubious, test returned 255 (wstat 65280, 0xff00)
All 1 subtests passed

Test Summary Report
-------------------
t/01_hoge.t (Wstat: 65280 Tests: 1 Failed: 0)
  Non-zero exit status: 255
  Parse errors: No plan found in TAP output
Files=1, Tests=1,  0 wallclock secs ( 0.02 usr  0.00 sys +  0.01 cusr  0.00 csys =  0.03 CPU)
Result: FAIL

とエラーを吐いて失敗を教えてくれるけど、

use Test::More;
use Test::Flatten;

subtest 'hoge' => sub {
    piyo();
    ok 1, 'fuga';
};

done_testing;

と、subtest内の最初で死ぬようなパターンだと、

$ prove -v
t/01_hoge.t ..
# ------------------------------------------------------------------------------
# hoge
# ------------------------------------------------------------------------------
No tests run for subtest hoge at t/01_hoge.t line 7.
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run

Test Summary Report
-------------------
t/01_hoge.t (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: No plan found in TAP output
Files=1, Tests=0,  0 wallclock secs ( 0.02 usr  0.00 sys +  0.01 cusr  0.00 csys =  0.03 CPU)
Result: FAIL

となり、"No tests run for subtest $caption"がcroakされてしまい、何故死んでしまったのかが分からない。

どうすればいいんだろう

追記

上記記事を書いてみたところ、xaicronさんがあっという間に直してくれました。

0.09であれば上記の問題は起こらないようです。ありがとうございます!