As of
this change (still under review, feel free to take a gander), acceptance tests reuse a running server if possible. This cuts running time of the acceptance test suite by roughly 25%, and of individual tests by up to 50% or mor.
The cost of this, especially given random test method iteration order, is you can no longer rely on things like modifying All-Projects or reusing project/group names across test methods. If you take a look at that series, it's not actually that hard to do this. Most permissions can be set on the per-test-method project, and there is a name() method for prefixing any resource name with a guaranteed unique prefix.
A few of my other series you may have noticed fly by in the past couple weeks involve weaning unit tests off of HTTP and SSH wherever possible, using the extension API instead. The eventual goal of this, as you may have guessed, is to eliminate HTTP and SSH daemons from the acceptance test servers entirely. (With a few
tricks we don't even need to use the network for pushing/fetching.)
Now go out and do something fun with those minutes I've saved you from waiting for Gerrit acceptance tests to finish :)