--- Eric Wilhelm <[EMAIL PROTECTED]> wrote:
> Now, assuming that both ways carry the same caveats, I too would
> prefer
> the latter because it not only eliminates load time, but also allows
> concurrency and provides isolation via the boundary between child
> processes.
I may be a bit of a heretic, but after years of using Test::Class, I
rather like the fact that I don't have the isolation between tests
because a lot of code makes incorrect assumptions about all sorts of
things. For example, here's a couple of time bombs waiting to happen:
sub slurp {
open FH, "< $file" or die $!;
do { $/ = undef; <FH> }
}
Without the process boundary, I'm more likely to catch this in tests.
I know most folks would disagree with me on this, but I find this a far
more common problem than folks think.
> Hmm, could one slurp the __DATA__/__END__ block into a scalar and
> open
> DATA, '<', \$scalar it on behalf of the subprocess?
>
> PPI?
The goal of Test::Aggregate was to improve performance :)
Kidding aside, PPI could be an optional feature to get around some
issues, but only with aggressive caching and the open question is
whether or not "speeding up tests" is a widespread enough problem to
warrant the effort.
> I don't see anything in Test::Aggregate where "which modules to
> preload"
> is specified. Presumably, it lets perl's compile-time handle that.
Correct. As I've stated before, the goal of this is to make it as
transparent as possible. Move tests from t/ to your 'aggregate'
directory.
> I also wonder about debug-ability where the `prove aggtests/foo.t` is
> potentially a completely different landscape than the full run. If
> the
> full run is 10 minutes and the landscape-specific failure is at the
> end
> that seems a bit costly.
You can dump the file that it's running and debug that, including
commenting out slow bits. This is documented.
Cheers,
Ovid
--
Buy the book - http://www.oreilly.com/catalog/perlhks/
Perl and CGI - http://users.easystreet.com/ovid/cgi_course/
Personal blog - http://publius-ovidius.livejournal.com/
Tech blog - http://use.perl.org/~Ovid/journal/