See http://petdance.com/perl/ 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:
- Redundancy is OK. Don't build for redundancy, but if you happen to have redundant tests between a couple of .t files, that's OK. Don't try to remove the "inefficiencies".
- Don't worry how long your tests take. Set up a bot that runs hourly and notifies you (or the entire department, in my case) if any tests fail.
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 smokereports@us.com
# Smoke against the branches
30 * * * * smokebot cp2004-branch smokereports@us.com
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/smoke.out.fail
if [ -s /home/smoke/smoke.out.fail ]
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
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
|
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
|
|