Another trick that comes to mind is adding a little smarts to your
tests to prevent multiple runs from stomping on each other.
For StatusNet's remote subscription features, I have a client-side
test set which registers user accounts on two sites and confirms that
behavior is as expected posting messages back and forth.
Subsequent test runs don't interfere with each other since each run
uses a unique random username pair.
This lets me do casual test runs on both local and remote test
instances without any special setup; automated batch runs would
probably reinitialize the test instances between runs for good