That doesn't allow for what happens if both are missing.

I find the following a good general rule.

There are tests that test how the code actually works, that could convievably be different on different platforms.

These are always on.

There are tests for issues that are almost certainly (but not provably) going to pass everywhere, but add extra dependencies (and thus increase risks relating to failures, perl version deps, and platform compatibility). I include POD tests, because your pod might have issues with older POD parsers found in some places.

They get disabled BY _by_default_ unless the end user happens to have the module anyway, but they don't hold up the show for someone that doesn't. And they get run in automated testing, sometimes (really depends if the automated testing has testing the end-user case or testing the module itself as it's primary focus)

There are tests that are ONLY going to need to be run by the author before they can release.

They get disabled _by_default_ unless the person running the tests asks them to be run.

Note the by defaults. In the absense of any information to the contrary, everything but the primary functionality testing should always be off.

This keep dependencies and thus fallout to a minimum, and lets people do what they need to.

As for naming of things, I'd consider the tests for the author to be "release testing", and thus perhaps the name TEST_RELEASE for the environment variable to enable for release testing? It also has the nice property of being an imperative command when you say it. "Testing system, test release!"

Adam K

A. Pagaltzis wrote:
* Adam Kennedy <[EMAIL PROTECTED]> [2006-02-03 02:45]:
But I don't know that I like disttest autodetection. I quite
like being able to run the additional tests manually if needed,
and not be limited to only during the disttest process.

Maybe do it the other way around? Define INSTALL_AUTOMATED and
INSTALL_INTERACTIVE environment variables that get set during
installation, so author tests run by default and can be skipped
when installing.

That does require touching more infrastructure, though. But it
should solve the problem long-term, because by doing it that way,
excluding tests not meant for end-user installation would not
require assinging names up front for every phase in the lifecycle
of a module and skipping each of them explicitly.

Regards,

Reply via email to