Just pushed out a new alpha of Test::More.  There's a bunch of new features
having to do with the plan.  In general it's less restrictive, you can now run
tests without first having declared a plan.

This enables the long called for new feature of done_testing().  It's a safer
replacement for no_plan.  Looks like this:

    use Test::More;  # look ma, no plan!

    pass("Some sort of test");
    pass("Some other test")

    done_testing();

If your test does not reach done_testing(), no plan will be output and your
test will be a failure.  This is safer than "no_plan" because if your test
exits in the middle it will fail.

You can also give done_testing() a number of tests.  In that case it works
just like "plan tests => #" except instead of having to put it at the
beginning of the test it goes at the end.  This gives you the opportunity to
calculate the number of tests as things go.

plan( add => # ) didn't make the cut.  There were too many edge cases still to
be worked out and I don't want to delay done_testing() because it fixes 90% of
the problems with plans.  Here at the hackathon, Ovid is working on a full-on
sub-plan TAP syntax which may eliminate the need for it entirely.  Those
wanting a look at that can see http://github.com/ovid/test-more/master

Finally, as a little aid to testing, Test::Builder->output() and friends now
take scalar references.  This makes it much easier to trap test output without
having to try and write backwards compatible tied capturing filehandles (5.6
will not do scalar ref filehandles).  I had to suck in a copy of IO::Scalar to
do it (one more argument in favor of just dropping 5.6) but it made the tests
so much simpler.  There's Test::Builder::NoOutput in t/lib which is a
convenience subclass to make testing even simpler.  I'm considering rolling
the functionality into Test::Builder proper because I'm sure others will find
it very useful.


0.87_01  Sun Mar 29 09:56:52 BST 2009
    New Features
    * done_testing() allows you to declare that you have finished
      running tests and how many you ran.  It is a safer no_plan and
      effectively replaces it.
    * output() now supports scalar references.

    Feature Changes
    * You can now run a test without first declaring a plan.  This allows
      done_testing() to work.
    * You can now call current_test() without first declaring a plan.

    Bug Fixes
    * skip_all() with no reason would output "1..0" which is invalid TAP.
      It will now always include the SKIP directive.

    Other
    * Repository moved to github.

0.86  Sun Nov  9 01:09:05 PST 2008
    Same as 0.85_01



-- 
You are wicked and wrong to have broken inside and peeked at the
implementation and then relied upon it.
        -- tchrist in <31832.969261...@chthon>

Reply via email to