Robert Dailey wrote:
On Mon, Apr 27, 2009 at 10:57 AM, Noah Roberts
mailto:roberts.noah@gmail.com> wrote: You forgot a third option, split your project into numerous small libraries so that any changes require the smallest amount of rebuilding that is possible.
This is actually a good idea that I overlooked. Thank you. I mean, I already modularize my code fairly well, I just never had thought about only testing components that have changed. I think such a build system might be complex to make. I'm using CMake primarily for my unit testing system. I wonder if CMake alone is enough for this. Usually the CI testing is done on the client machine in my case, but maybe the server could do it as a post-commit? These are all details that get a bit off-topic, but hopefully I can figure something out.
We were using cmake for a while. I had more trouble deciding how to integrate the whole large project vs. dealing with the smaller libs. I just told the CI server (CC.Net) to run make tests as part of the build process. If the unit tests for that module fail it flags as red that way. Full integration tests for us take too long for the quick turn around time. We have to run them nightly. This is still quick enough I think. Unit tests turn up most problems before it reaches integration testing. Integration testing just turns up more opportunity for unit testing.