Re: [Perlunit-users] How to exit from test suite?
Status: Beta
Brought to you by:
mca1001
|
From: Dmitry D. <dd...@ic...> - 2003-10-14 21:05:41
|
Matthew Astley wrote:
> On Sat, Oct 04, 2003 at 01:16:08PM +0400, Dmitry Diskin wrote:
>
>
>>If one of my tests fail,
>
>
> One particular test, or any of them? Tests are often considered to be
> independent, at least to a large extent.
>
>
>>other tests should not be executed. In order to stop execution, I
>>use the following code:
>>
>>sub test_001_load {
>
>
> On the choice of method name, is the numbering just for convenience or
> were you relying on one test's side-effects to do something for the
> next one? The manpage for Test::Unit::TestCase (notes section) talks
> about this a bit.
>
>
>> my $self = shift;
>> if ($loaded_nok) {
>> $self->fail("Unrecoverable error, can't continue.");
>> exit;
>> }
>>}
>
>
> I haven't done anything like this with perlunit, but in JUnit running
> from an Ant file, I have put aside a set of tests to run first. They
> check things like the presence of the database we're just about to run
> the hundred tests against - 100 failures aren't very useful.
>
> You could do this by generating test suites by some means and having a
> more customised testrunner script.
>
>
>>Is it a proper way? Is there any $suite->stop method?
>
>
> Hmm, there's a Test::Unit::Result->stop() which would appear to do
> what you want. I'm not sure what the proper answer is, and I don't
> claim to have read the docs recently. 8-}
>
> You'd need to get the 'result' object from the 'suite' which creates
> it. $testrunner->result()->stop() would work, but this is probably a
> "dirty" solution.
>
> A neater way might be to register a Test::Unit::Listener (I haven't
> tried) and use the add_failure event to fish the Result object out
> from the failure exception?
>
>
> Remember, there's more than one way to do it!
>
> Matthew #8-)
I was unable to find a way to call $testrunner->result()->stop() from my
testcase. How can I access testrunner instance from testCase?
--
Dmitry.
|