[![Build Status](https://travis-ci.org/xaicron/p5-Test-Flatten.svg?branch=master)](https://travis-ci.org/xaicron/p5-Test-Flatten) # NAME Test::Flatten - subtest output to a flatten # SYNOPSIS in t/foo.t use Test::More; use Test::Flatten; subtest 'foo' => sub { pass 'OK'; }; subtest 'bar' => sub { pass 'ok'; subtest 'baz' => sub { pass 'ok'; }; }; done_testing; run it $ prove -lvc t/foo.t t/foo.t .. # ------------------------------------------------------------------------------ # foo # ------------------------------------------------------------------------------ ok 1 - ok # ------------------------------------------------------------------------------ # bar # ------------------------------------------------------------------------------ ok 2 - ok # ------------------------------------------------------------------------------ # baz # ------------------------------------------------------------------------------ ok 3 - ok 1..3 ok oh, flatten! # DESCRIPTION Test::Flatten is override Test::More::subtest. The subtest I think there are some problems. - 1. Caption is appears at end of subtest block. use Test::More; subtest 'foo' => sub { pass 'ok'; }; done_testing; # ok 1 - foo is end of subtest block. t/foo.t .. ok 1 - ok 1..1 ok 1 - foo 1..1 ok I want __FIRST__. - 2. Summarizes the test would count. use Test::More; subtest 'foo' => sub { pass 'bar'; pass 'baz'; }; done_testing; # total tests is 1 t/foo.t .. ok 1 - bar ok 2 - baz 1..2 ok 1 - foo 1..1 I want __2__. - 3. Forked test output will be broken. (Even with Test::SharedFork!) use Test::More; subtest 'foo' => sub { pass 'parent one'; pass 'parent two'; my $pid = fork; unless ($pid) { pass 'child one'; pass 'child two'; fail 'child three'; exit; } wait; pass 'parent three'; }; done_testing; # success...? t/foo.t .. ok 1 - parent one ok 2 - parent two ok 3 - child one ok 4 - child two not ok 5 - child three # Failed test 'child three' # at t/foo.t line 13. ok 3 - parent three 1..3 ok 1 - foo 1..1 ok oh, really? I want __FAIL__ and sync count. Yes, We can!! # FUNCTIONS - `subtest($name, \&code)` This like Test::More::subtest. # SUBTEST\_FILTER If you need, you can using `SUBTEST_FILTER` environment. This is just a __\*hack\*__ to skip only blocks matched the block name by environment variable. `SUBTEST_FILTER` variable can use regexp $ env SUBTEST_FILTER=foo prove -lvc t/bar.t # SKIP: bar by SUBTEST_FILTER # ------------------------------------------------------------------------------ # foo # ------------------------------------------------------------------------------ ok 1 - passed # SKIP: baz by SUBTEST_FILTER 1..1 # AUTHOR xaicron # COPYRIGHT Copyright 2011 - xaicron # LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. # SEE ALSO [Test::SharedFork](https://metacpan.org/pod/Test::SharedFork)