使用NUnit 2.5.x和.Net 4.0进行持续集成/构建

时间:2011-08-10 04:13:42

标签: c# msbuild nunit continuous-integration nant

好的,所以这是我当前的设置和我目前的问题。我在Visual Studio解决方案中有越来越多的项目。该解决方案包含大约15个项目(提供或采取一些)和快速增长的代码库。我意识到在我开始之前我应该​​有一个持续的构建系统设置,但我想它永远不会太迟。因此,经过一些研究,我相信我的完美设置将是:

  • NUnit 2.5.x(我们已经与此相关......所以必要)
  • CruiseControl.Net集成(对其他选项开放,但只有Git支持的免费选项)
  • 与代码覆盖率工具(NCoverDotCover)集成会很不错
  • 集成以运行shell命令(适用于JSLint和压缩工具等)

我缺少的是运行自动构建的工具。我查看了NAnt,但它对运行MSBuild(构建项目)的支持似乎已经过时了(我们正在使用VS2010)并且在我们的构建过程中使用解决方案文件将是一个巨大的节省时间。我还查看了MSBuild(由于显而易见的原因),但我发现运行NUnit测试的过程仅支持2.4.x(MSBuild扩展项目)。

我很好奇其他人如何组织他们的连续构建系统。 NUnit如果相当受欢迎,那么我绝不是唯一一个对此感到疑惑的人。

3 个答案:

答案 0 :(得分:4)

我的第一个问题是你将如何构建项目?

Teamcity Professional每个服务器可以免费获得20个构建配置,并且可以让你更加容易,内置dotcover,并且非常容易设置,运行测试等等,而且它是迄今为止最完整的在那里烘焙CI服务器。

Jenkins是下一个亚军,它是Hudson的一个分支,并且插件非常灵活 做任何使它比Teamcity更灵活的东西,但它并不容易设置,代码覆盖是一个痛苦的设置,并有一些恼人的怪癖,但是完全免费。

除非你有一些非常强大的理由使用CruiseControl.Net,不要打扰,因为它的时间非常强大,但现在很遗憾,使用过时和痛苦。

就设置构建而言,Teamcity和Jenkins都支持MSBuild,NAnt,Rake等,它们也支持多个构建步骤,就像在msbuild或Nant文件中一样。我过去所做的只是使用.sln文件来构建一个构建步骤,使用构建任务进行单元测试,然后使用内置任务进行代码覆盖,然后使用另一个构建任务来推送文件。

我使用过TeamCity,Jenkins,TFS,我试图使用CruiseControl.Net,但发现它非常笨拙。到目前为止,Teamcity是最好的,Jenkins紧随其后,即使我拥有它,我也不愿意使用TFS。

如果您有任何疑问,请随时与我联系。

答案 1 :(得分:2)

您可以使用NAnt构建Visual Studio 2010解决方案。我一直这样做。我在答案中提供了样本NAnt脚本:<msbuild> task or msbuild.exe with NAnt?

答案 2 :(得分:0)

如果您只需编译并运行测试,那么TeamCity就不会出错,它对NUnit / VS和内置的一堆报告都有很大的支持。

如果您需要运行更复杂的构建脚本,我建议您使用FinalBuilder创建构建脚本,使用TeamCity命令运行器来执行该脚本。 通过将测试结果导入TeamCity,您仍然可以获取报告,并且有一种简单的方法可以将构建状态从FinalBuilder输出到TeamCity: