Eric Wilhelm writes:

> # from Smylers
> # on Thursday 16 August 2007 11:40 pm:
> 
> > > I am certain that more than one 'extra tests' directory is needed,
> > 
> > Why are you certain of this?
> 
> Because I already have a use for three 'profiles' in one project and I
> can name a few others from elsewhere:
> 
>   1.  author (kwalitee, pod, etc)

Yep.

>   2.  gui

Why can't gui tests simply be in t/ and be skipped if the appropriate
environment isn't available?  That way all users who are in that
particular environment run the tests, rather than only those who've
discovered the xt/gui/ directory.

>   3.  network

Ditto -- why isn't skipping enough?

>   4.  you must have an account/password on $external_service
>   5.  postgres/mysql/whatever availability/setup/permissions

There are existing modules user tests which cope with those, either by
prompting or environment variables -- defaulting to skipping the tests,
of course.

Possibly we need a better (or standardized) way of getting information
from users running tests in these situations, and for safely skipping by
default.  (When trying to get a bunch of Cpan modules to install
unattendedly I discovered they collectively had many ways of seeking
attention; having none of them waiting at a prompt involved all three of
setting an environment variable, passing an option to Makefile.PL, and
piping yes '' into it.)

>   6.  no modem attached to /dev/ttyS0

That could probably be treated similarly to the website case, defaulting
to presuming no modem is there unless explicitly told so.

> What I would ultimately like to see happen is that these
> subdirectories fall into some form of standard(ish) naming scheme
> which would allow testers and qa efforts to run particular subsets.
> That is, the smoke box (or rigorous end-user upgrade verification
> process) could set variables to test the author, 'gui', 'network', and
> 'postgres' tests[1] without stumbling into e.g. "must have an X.com
> web-services account".

That requires a central standardized repository of permitted
subdirectories and what needs to be done to run the tests there.  Surely
it's better to let each distribution keep control of this, by specifying
in code what's needed to run those particular tests (and skipping
otherwise)?

Smylers

Reply via email to