Should automated unit tests be a part of the build process, or should they be manually run when someone makes changes to the code instead?
To me it seems like making it part of the build rather than leaving it a manual process has some clear advantages. Running your tests with the build would make them run more frequently and would keep them from getting of sync with the code.
The downside to running them with the build is that it would increase build times and could cause a build to fail, but I was under the impression that tests that take more than a couple hundredths of a second to complete are not good tests. Also if a build fails because of a test wouldn't that be a good thing? It would keep you from deploying broken code.
I don't see many people making the tests run directly as part of the build so I'm wondering why they are usually separate.