in reply to Testaholics Anonymous (or how I learned to stop worrying and love Test::More)

See for a couple of my talks on the topic of large-scale project testing, including the one I gave at last year's OSCON.

Also, I'd be glad to visit your local Perl Mongers group and talk, too. (No cost to you, either, so long as my costs to get there don't exceed $100) I'm going to Minneapolis in a few weeks, and I've spoken at St. Louis and Grand Rapids.

Short version of my comments on this thread:

Here's the bot we use at work. It's set up to handle a branches if necessary, as in:
# Runs the smokebot program on the trunk and mails the results 0 * * * * smokebot HEAD # Smoke against the branches 30 * * * * smokebot cp2004-branch
Adapt to your own uses:
#!/bin/sh if [ $# -lt 2 ] then echo Must pass at least a branch, and one email address, echo plus any parms to echo pass to smoke. exit 1 fi REV=$1 shift MAIL=$1 shift cd $TMP DIR=tw FULLPATH=$TMP/$DIR # This assumes you have already logged in once as anoncvs # so that the password is in your ~/.cvspass file. cvs -d/home/cvs -Q co -d $DIR -r $REV tw > /dev/null TWROOT=$FULLPATH export TWROOT /home/smoke/tw/Dev/devapache stop > /dev/null 2>&1 /home/smoke/tw/Dev/devapache start > /home/smoke/smoke.out 2>&1 cd $TWROOT smoke $@ >> /home/smoke/smoke.out 2>&1 grep -i "^Failed" /home/smoke/smoke.out > /home/smoke/ if [ -s /home/smoke/ ] then STATUS="FAILED" mail -s"Smoke $REV $@ $STATUS `date`" $MAIL < /home/smoke/smoke.ou +t else STATUS="passed" fi /home/smoke/tw/Dev/devapache stop >> /home/smoke/smoke.out 2>&1