----- Original Message ----
From: Geoffrey Young <[EMAIL PROTECTED]>
> so, the compile test failed, but bar() could still be called and, in
> fact, even executed successfully.
Hi Geoff,
You've run into a problem which surprises a few folks but definitely causes
problems. In a nutshell, use_ok internally traps the "use" call with an eval.
However, even if it fails (as in your case), the bytecode might still be
compiled and in memory and, as a result, some tests might pass and others fail.
As a result, *all* of my tests generally start with something similar to the
following (season to test):
my $CLASS;
BEGIN {
$CLASS = 'Some::Module';
use_ok $CLASS or die; # "or die" saves the day
}
can_ok $CLASS, 'new';
This prevents the error you received. Part of the reason I started doing that
is I once had a use_ok test fail but I had so many intervening tests pass that
this scrolled off the screen by the time I got down to my failing tests. It
took me a long time of debugging and calling over other coworkers before
someone spotted that the use_ok was failing.
Cheers,
Ovid
-- If this message is a response to a question on a mailing list, please send
follow up questions to the list.
Web Programming with Perl -- http://users.easystreet.com/ovid/cgi_course/