[ABE.pm] Re: web page testing
Phil Lawrence
phil at five-lawrences.com
Wed Jul 28 08:17:35 CDT 2004
Cc: ABE.pm
Cc: Philly.pm
Ricardo SIGNES wrote:
> * Phil Lawrence
>
>>Anyway, why not have:
>>./t
>>./t/modules
>>./t/modules/login.pm
>>[ ... ]
>
>
> ...why not indeed? :) That's probably what I'd do, if I had
> a lot of repeated stuff, too.
Here's why not: I can't use Test::More from within those modules,
because I already used it in the ./t/test_driver.pl script! :-(
I wasted yesterday looking for a way to do this, and the best I could do
by 5:00 was find references to Test::Builder, whose constructor returns
singletons. I think this may help, but I'm not sure about
implementation. Ideas? Basically, I need the ability to write tests
into each module.
The last thing I tried was to subclass Test::More thusly:
package T::Test;
use warnings;
use strict;
use Test::More qw(no_plan);
sub new { bless {} => shift() }
1;
and in ./t/test_driver.pl:
use T::Test;
my $t = T::Test->new;
$t->require_ok( 'Term::Interact' );
If this worked, I thought I could pass $t to all the different testing
modules I use from the driver script. But no dice:
$ ./t/test.pl
not ok 1 - require T::Test=HASH(0x81392a0);
# Failed test (./t/test.pl at line 11)
# Tried to require 'T::Test=HASH(0x81392a0)'.
# Error: Can't modify require in scalar assignment
at (eval 2) line 2, at EOF
1..1
# Looks like you failed 1 tests of 1.
This may be related to Test::Builder's export_to_level method, I don't
know. I'm not thinking clearly about this...
Phil
More information about the ABE-pm
mailing list