I haven't used this module myself, but perhaps create two test suites: "make 
test" tests everything you can test without burdensome external dependencies, 
and "make testsql" either depends specifically SQLite2 or using a user-provided 
DSN.  The users who want to put more effort into testing can invoke the latter. 
 I'm not sure if this is an appropriate solution for "smoke testing", though.

Ted Behling

-----Original Message-----
From: Tyler MacDonald [mailto:[EMAIL PROTECTED]
Sent: Tuesday, January 10, 2006 9:43 PM
To: dbi-users@perl.org
Subject: extra dependancies vs. testability?


        DBIx::Transaction currently only depends on DBI, but for it's unit
tests to run you need a DBI driver available. If SQLite2 is available, it
gives you a nice default DSN to test DBIx::Transaction in a completely
self-contained environment.

        The problem I'm facing is that smoke testers (notably CPAN testers
and ppm.activestate.com) can't automatically test this module properly
because the test dependancy on having some sort of DSN isn't made obvious to
them. I'm in a bit of a dilemma here. I'd like my package to be
automatically testable against some sort of "real" DBD driver, but I don't
neccessarily want every person who installs my module to be obliged to
install DBD::SQLite2 alongside it. As nice of a module as it is, it seems
like bloat if they're never going to use it for anything else.

        What do you think I should do about this? Bite the bullet and depend
on SQLite2? Create an overly complex mock object that doesn't emulate any
"real" DBD driver's behaviour? Or is there another, better solution?

        Thanks,
                Tyler


Reply via email to