@xaicronさんの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さんがあっという間に直してくれました。
@sugyan shipped 0.09!
2012-07-03 18:18:02 via Echofon to @sugyan