Cruise Control .net:使用软件包并显示NUnit测试结果

3
经过一番混乱,我终于成功地在我们的构建服务器上部署了Cruise Control .net实例。它每隔几分钟轮询服务器,只有在svn仓库检测到更改时才进行构建。
为了构建和测试,我使用了MSBuild和NUnit的组合。MSBuild会删除之前生成的所有测试结果xml文件,构建项目并运行NUnit。
最后,我使用ccnet.config中的Publisher\Merge选项将测试结果生成的结果包含在当前的Cruise Control构建结果中。
结果非常出色。然而,生成的日志非常庞大且难以查看。我正在查看cruise control自己的实例,地址是http://ccnetlive.thoughtworks.com/ccnet/server/CCNet%20Live/project/NetReflector/ViewProjectReport.aspx,他们的构建报告还包括了更多选项,如NUnit测试结果等。
我尝试从CCnet管理员仪表板安装多个软件包,但新安装的软件包都没有出现在仪表板上。我猜想我需要做更多的工作,不仅仅是安装这些软件包,可能还需要调整配置文件,但我无法弄清楚如何操作。有没有人在这方面有任何经验?
1个回答

2
最好的方法是直接从您的Cruise Control中调用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)。

希望这有所帮助。


我本来想直接使用nunit任务,但是Cruise Control .net说这样做不推荐。这是链接:http://confluence.public.thoughtworks.org/display/CCNET/NUnit+Task。目前我对它的工作方式非常满意。就软件包而言...似乎IIS工作进程没有权限访问仪表板文件夹以进行更改。 - shake
2
好的,这是不使用nunit任务的一个很好的理由。如果您有特定的测试配置,最好将其放在msbuild目标中,可以从任何地方访问,而不是将其放在ccnet conf中。至于您的报告问题,请检查dashboard.config文件中包含的xsl(以及电子邮件的ccservice.exe.config),检查IIS用户是否可以访问您的dashboard文件夹并重新启动IIS。这应该能解决问题。 - Benjamin Baumann
是的,那正是我所做的,而且它起了作用。感谢您的所有帮助。 - shake
这并没有真正解释如何安装软件包。 - Nobody

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接