Ditto on the repeatability... hence the 'automate everything' stance I took. There should be no special steps for any environment. We control everything through local environment initialization files, the values of which can be inserted with macros into just about anything in the build process. As an example, our J2EE server's config directory is created on the fly at build time out of one of the modules in the source code repository. Datasources are built, local machine names, port numbers, admin password, all of that stuff is created by the build configuration script.
We have almost two million lines of code, and still can build the entire system on someone's PC.
Re: test results: the results of every nightly build in each of the environments gets posted to the intranet automatically here.