on 11/4/02 2:37 am, Curt Sampson at [EMAIL PROTECTED] wrote:
> On Tue, 9 Apr 2002, Michael G Schwern wrote:
>
>>> I'm not sure exactly what the purpose of this is; your test will
>>> still fail if it dies even when not in a lives_ok block, right?
>>
>> It'll fail and take the whole rest of the test program with it. Some
>> testing systems like to abort the test script on failure. Perl's
>> doesn't.
>
> I'm not entirely sure I buy this, since the framework seems perfectly
> happy to tell me that something is wrong whether I complete all
> the tests in a script or not. But it's hardly a point worth arguing.
[snip]
Arguing anyway just for the sake of it :-)
My motivation was testing code that threw a lot of exceptions to signify
error conditions... so you had variations on things like:
my @test_cases = (
[1,2,3] => [3,2,1],
["foo"] => ["oof"],
);
while (@test_cases) {
my ($test_args, $test_results) = (shift @test_cases, shift @test_cases);
my @results;
lives_ok {@results = $foo->method(@$test_args) }
"method(@$test_args) succeeded";
is_deeply(\@results, $test_results,
"method(@$test_args) = (@$test_results)");
};
The sequence of tests was stateless --- one test failing didn't invalidate
the other test cases. Running them all rather than exiting the test script
after a single failure seems to be a Good Thing.
It helped with my debugging anyway ;-)
Cheers,
Adrian
--
Adrian Howard <[EMAIL PROTECTED]>
phone: 01929 550720 fax: 0870 131 3033 http://www.quietstars.com/