Ok, so her开发者_StackOverflow社区e's my current setup and my problem at the moment. I have a growing set of projects in a Visual Studio
solution. The solution contains about 15 projects (give or take a few) and a quickly growing code-base. I realize that I should have had a continuous build system set-up before I got to this, but its never too late I suppose. So after doing a little research, I believe that my perfect setup would be:
NUnit 2.5.x
(we are already tied to this... so a necessity)- Integration with
CruiseControl.Net
(open to other options, but only free ones with Git support) - Integration with a code-coverage tool (
NCover
,DotCover
) would be nice - Integration to run shell commands (for
JSLint
and compression tools, etc.)
What I am missing is a tool to run the automated build. I looked at NAnt
, but it's support for running MSBuild (to build the project) seemed fairly outdated (we're using VS2010
) and utilizing the solution files in our build process would be a HUGE time saver. I also looked at MSBuild (for the obvious reasons) but the process that I found for running NUnit
tests only supports 2.4.x (MSBuild
extensions project).
I am curious how everyone else has organized their continuous build systems. NUnit
if fairly popular, so I must not be the only one who is wondering about this.
my first question is how may build projects will you have?
Teamcity Professional is free for 20 build configurations per server and will make your like sooooo much easier, has dotcover build in, and is really easy to setup, run your tests, etc. and it's by far the most fully baked CI server out there.
Jenkins is the next runner up, it's a fork of Hudson and is very flexible with plugins
to do just about anything making it a little more flexible then Teamcity but it's not as easy to set up, code coverage is a pain to set up and has some annoying quirks, but is completely free.
unless you have some really strong reason to use CruiseControl.Net, don't bother, for it's time it was very powerful but it's now sadly out dated and painful to use.
As far as setting up builds, both Teamcity and Jenkins support MSBuild, NAnt, Rake, etc. they also support multiple build steps like would do in an msbuild or Nant file. What I have done in the past is just use the .sln file to do the build with one build step, used the build in task for unit tests, then used the built in task for code coverage then used a another build task for pushing the files.
I have used TeamCity, Jenkins, TFS, and I tried to used CruiseControl.Net but found it painfully clunky. By far Teamcity is the best, with Jenkins a close second, I would not willing use TFS even if I had it.
If you have any questions please feel free to contact me.
You can use NAnt to build your Visual Studio 2010 solutions. I do it all the time. I provided sample NAnt script in my answer here: <msbuild> task or msbuild.exe with NAnt?
If all you need is compile and run tests you can't go wrong with TeamCity it has great support for NUnit/VS and a bunch of reports built in.
If you need to run a more complex build script I suggest you use FinalBuilder for creating the build script and TeamCity command runner to execute that script. By importing the test result into TeamCity you can still get the reports and there is a simple way to output build status from FinalBuilder to TeamCity:
- How can I output messages from FinalBuilder that will be captured by TeamCity?
- Outputting build status from FinalBuilder to TeamCity
精彩评论