Jeffrey Palermo wrote the below and then challenged the community to use what works and evangelize:
... My team did not dabble with converting from NAnt to MSBuild or from NUnit to MSTest. Here is my thought process:
- Our process works (CruiseControl.Net, NAnt, NUnit, compiler).
- CruiseControl.Net stays. I don't see an alternative that is compelling, and CruiseControl.Net is not causing me pain.
- NAnt stays. I see MSBuild as a comparable alternative but with no compelling advantage over NAnt to force a conversion. NAnt is not causing me pain.
- NUnit stays. I see MSTest as a subset of NUnit's functionality; therefore, there is no compelling reason to switch. NUnit is not causing me pain.
- compiler: Switched to MSBuild from the NAnt <solution/> task out of necessity. The NAnt 2005 msbuild task is limited, and it caused me pain. Moving to an <exec /> task calling msbuild.exe gave me exactly what I needed. It's been working for 6 months without further attention.
I could have written that myself - those are my exact experiences and beliefs. I doubt that I have to tell you that I cannot agree more with Mr. Palermo's commentary. While at Tellus, Joe and I developed a nice Continuous Integration process consisting of CC.NET, NAnt, NUnit, NCover and FXCop. We used some additional tools like NCover, Simian, etc, but those five were the major players. I saw no reason for switching from NAnt to MSBuild. NAnt worked and continues to work fine and I imagine it will continue to do so for years to come.
I am very happy with the combination of those tools. They complement each other well, they work well together, they are all open source (except for FXCop, of course) and the whole is much more than the sum of its parts. Until I have a very compelling reason to replace the entire system or pieces of it with something else then I'm sticking with it.
I'm a practical person; I do what works. A CI system consisting of CC.NET, NAnt, and NUnit just works. Joe and I have presented 3 user group/code camp sessions on that system. We evangelized!