Ovid wrote in perl.qa :
>
> 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

maybe BAIL_OUT could be better than die here, in at least a few cases.

>   }
>   can_ok $CLASS, 'new';

Reply via email to