in reply to test files - organising

I recommend subdirectories (and making prove recurse on them). More specifically, I recommend numbered subdirectories organized by functional area, where the numbering behaves correctly in standard globification.

For example, something like this:

000_basics/ 001_cpan-prerequisites.t 002_database-bootstrap.t ... 100_orm/ 101_dbix-main-schema.t 102_dbix-main-foo.t ... 200_main-classes/ 201_My-Special-Foo.t 202_My-Class-Accessor-Lightspeed.t ... 300_parsing/ 301_xml-to-spaghetti.t 302_unmelt-ice-cream.t ...

This gives you a few instant advantages:

Anyway, setting up your test infrastructure is a Really Important Thing and I urge you to give it the same level of consideration you do to the rest of your system architecture. People touching your code later, including your future self, will thank you for it.

Oh yeah, and document the test architecture in case you're run over by an elephant and someone else has to figure it out.

isnt( $THEIR::obvious, $YOUR::obvious, "/obvious" );

Replies are listed 'Best First'.
Re^2: test files - organising
by Cagao (Monk) on Feb 13, 2008 at 22:10 UTC
    Thanks for all the suggestions, it's always obviously a bit tricky trying to figure out how to arrange things when you've no idea how large a project is going to be.

    This one is no doubt gonna get VERY large, re-factoring code that's over 8 years old into sensible modules.

    Thanks again!