2010-09-16 64 views
3

经过许多混乱之后,我终于成功地在我们的构建服务器上成功部署了一个Cruise Control .net实例。 它每隔几分钟就会轮询一次服务器,并且只有在它检测到svn存储库中的更改时才生成。 对于构建和测试,我正在使用MSBuild和NUnit的组合。 MSBuild删除所有先前生成的测试结果xml文件,构建项目并运行NUnit。 最后,我使用ccnet.config中的Publisher \ Merge选项将测试结果生成的结果包含到当前Cruise Control生成结果中。结果非常好。然而,生成的日志是巨大的,很难通过。我正在寻找巡航控制自己的实例在http://ccnetlive.thoughtworks.com/ccnet/server/CCNet%20Live/project/NetReflector/ViewProjectReport.aspx和那里生成报告有像NUnit结果等方面包括更多的选项Cruise Control .net:使用软件包并显示NUnit结果

我试图从CCnet管理仪表板安装多个包,但没有新安装的软件包出现在仪表板上。我猜测我必须做的不仅仅是像配置文件一样安装这些软件包,但我无法弄清楚。有没有人有这方面的经验?

回答

2

最好的办法是直接从您的巡航控制系统调用NUnit的:

<tasks> 
    <msbuild> 
     <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable> 
     <workingDirectory>D:\Compil\src\net-3.5\MyProject\trunk</workingDirectory> 
     <projectFile>MyProject.sln</projectFile> 
     <buildArgs>/p:Cible="DEV"</buildArgs> 
     <targets>Clean;Build</targets> 
     <timeout>600</timeout> 
     <logger>D:\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger> 
    </msbuild> 
    <nunit> 
     <path>C:\Program Files\NUnit 2.5.7\bin\net-2.0\nunit-console.exe</path> 
     <assemblies> 
      <assembly>D:\Compil\src\net-3.5\MyProject\trunk\Tester\Tester.exe</assembly> 
     </assemblies> 
    </nunit> 
</tasks> 

这样做,你就不必手动合并的文件,也没有手动删除NUnit的结果文件。

最后,如果您的报告不适合你,检查用于创建它的XSL文件(见Cruise Control .Net not showing Nant build errors

希望这有助于。

+0

我打算直接使用nunit任务,但是Cruise Control .net说它没有推荐这样做。这里是链接:http://confluence.public.thoughtworks.org/display/CCNET/NUnit+Task。我对现在的工作方式非常满意。就软件包而言......似乎是IIS工作进程没有访问仪表板文件夹进行更改的权限。 – shake 2010-09-16 20:24:26

+2

好吧,这是一个不使用nunit任务的好理由。如果你有一个特定的测试配置,最好把它放在一个msbuild目标中,可以在任何地方使用,而不是放在ccnet conf中。至于报告问题,请检查dashboard.config文件(和电子邮件ccservice.exe.config)中包含的xsl,检查IIS用户是否有权访问仪表板文件夹并重新启动IIS。这应该做的伎俩。 – 2010-09-17 08:50:29

+0

是的,这正是我所做的,它做到了。感谢您的帮助 – shake 2010-09-17 13:27:22