jplindstrom has asked for the wisdom of the Perl Monks concerning the following question:

Say I don't just have one single module I'd like to add tests to, but more like an application with a set of classes, like this:

lib/Foo/Bar.pm lib/Foo/Bar/Baz.pm lib/Blah/Bleh.pm

Where do I stick the t/ directory? Like this?

lib/t/Foo/Bar.t lib/t/Foo/Bar/Baz.t ...

or below each module, like this?

lib/Foo/Bar/t/Bar.t lib/Foo/Bar/Baz/t/Baz.t ...

How do you do this? Or do you do it some other way?

/J

Replies are listed 'Best First'.
Re: Testing: where does the t directory go?
by lachoy (Parson) on May 30, 2002 at 12:10 UTC

    If this is all part of one module, then you probably have something like:

    MANIFEST README Makefile.PL lib/Foo/Bar.pm lib/Foo/Bar/Baz.pm lib/Blah/Bleh.pm

    If so, just add a t/ subdirectory at the top-level and create your tests there:

    t/foo-bar.t t/foo-bar-baz.t t/blah-bleh.t

    As long as you're using ExtUtils::MakeMaker to create your Makefile, the normal test process (perl Makefile.PL; make; make test) will then run all your tests.

    Note that with tests you might not wind up creating one test file per module, but rather testing areas of functionality which may use several modules at once. The test names I picked above were just an example.

    Chris
    M-x auto-bs-mode

      Ah-h-h!

      My thinking was flawed; I tought of the classes as kind-of-semi-separated from each other, when it makes sense to consider the application's classes a single module.

      Many thanks!

      /J