--- Paul Johnson <[EMAIL PROTECTED]> wrote:

> I don't want it on all the time.  I don't want to change anything in
> my
> code to do it.  I don't (yet) care that it doesn't run my cleanup
> code
> or whatever.  I just want to easily find out what the first error
> was,
> and then have a short edit/test cycle until the bug is fixed.  Then
> I'll
> go back to plain "make test" as usual.
> 
> Anyway, thanks for making this happen.

Schwern's agreed that if a somewhat clean solution can be found, he'll
add it.

Aristotle's suggestion of dieing on the next ok() seems like the
easiest to implement.  The problem is this:

  is 3, 4, 'whee!';
  is factorial(123456), $some_num, '... be patient ...';

If we have 'die on fail' for the first test, the arguments of the
second test will still be evaluated, but we'll die before the test is
executed (what I wouldn't give for lazy evaluation ...).  You'll get
most of what you want, but the "next arguments are evaluated" caveat is
important.

I think the interface should have three ways of being used:

  use Test::More 'no_plan', 'fail';

That means it's always on.

  use Test::More 'no_plan';

  is 3, 4, 'whee!';
  die_on_fail();
  is factorial(123456), $some_num, '... be patient ...';

The first failure won't trigger the die.

  DIE_ON_FAIL=1 prove ...

That let's people have global control (and is easy to bind to keys in
editors).

Cheers,
Ovid

--
Buy the book  - http://www.oreilly.com/catalog/perlhks/
Perl and CGI  - http://users.easystreet.com/ovid/cgi_course/
Personal blog - http://publius-ovidius.livejournal.com/
Tech blog     - http://use.perl.org/~Ovid/journal/

Reply via email to