我刚刚开始使用CruiseControl.NET,我无法理解为什么NAnt和NUnit输出的合并不起作用。我已将我的ccnet.config
设置为谷歌上的典型值:
<merge>
<files>
<file>D:\ccnet\path1\nant-results.xml</file>
<file>D:\ccnet\path2\TestResult.xml</file>
</files>
</merge>
<xmllogger />
NAnt和ccnet工作正常:如果我故意输入代码错误,那么ccnet会说构建失败了。如果我故意进行一次失败的测试,也会发生同样的情况:ccnet会说构建失败。
问题是ViewBuildReport.aspx
页面没有显示NAnt或NUnit的任何输出。
显然我必须遗漏一些东西,但我不知道是什么。有什么想法吗?
答案 0 :(得分:6)
您需要找到文件\ CruiseControl.NET \ webdashboard \ dashboard.config,并在buildReportBuildPlugin部分中添加compile.xsl。添加时会如下所示:
<buildPlugins>
<buildReportBuildPlugin>
<xslFileNames>
<xslFile>xsl\header.xsl</xslFile>
<xslFile>xsl\unittests.xsl</xslFile>
<xslFile>xsl\modifications.xsl</xslFile>
<xslFile>xsl\NCoverSummary.xsl</xslFile>
<xslFile>xsl\compile.xsl</xslFile>
</xslFileNames>
</buildReportBuildPlugin>
<buildLogBuildPlugin />
<xslReportBuildPlugin description="NCover Report" actionName="NCoverBuildReport" xslFileName="xsl\NCover.xsl"></xslReportBuildPlugin>
</buildPlugins>
文档非常糟糕,我在寻找其他东西时偶然发现了这一点。当我在ccnet网站上的一些文档或示例在几分钟内解决了这个问题时,我感到非常高兴我浪费了这么多时间。
答案 1 :(得分:1)
该块是否位于您的发布商部分?
以下是我的一位发布商的样子:
<publishers>
<merge>
<files>
<file>*-results.xml</file>
</files>
</merge>
<xmllogger />
</publishers>
答案 2 :(得分:0)
我错过了publishers标记,但添加它并没有修复任何内容。
从ccnet调用nant和nunit的最佳做法是什么?目前我有这个我不喜欢的设置:
ccnet with nant task,nant构建文件使用msbuild和nunit2任务进行编译和测试。
很难找到一个体面的ccnet,nant和nunit的例子,它真正解释了将它们一起使用的最佳方式。我正在运行ccnet作为服务,这有什么不同?我试图尽可能简单地保持它,这大致就是我正在做的事情:
的ccnet.config:
<tasks>
<nant>
<baseDirectory>D:\ccnet\builds\checkout\path</baseDirectory>
<buildFile>go.build</buildFile>
<targetList>
<target>test</target>
</targetList>
</nant>
</tasks>
<publishers>
<merge>
<files>
<file>D:\ccnet\builds\artifacts\path1\nant-results.xml</file>
<file>D:\ccnet\builds\checkout\path\name.dll-results.xml</file>
</files>
</merge>
<xmllogger />
</publishers>
在go.build中:
<target name="build" depends="clean">
<msbuild project="name.sln">
</msbuild>
</target>
<target name="test" depends="build">
<nunit2>
<formatter type="Xml" usefile="false" />
<test assemblyname="Tests\path\name.dll" />
</nunit2>
</target>
如果我从仪表板检查构建日志,那么我可以看到它确实具有nant和nunit的xml输出。但这不会显示在仪表板上,为什么会这样呢?这将变得非常令人沮丧...
我尝试了两种不同类型的方法:自动魔术ccnet方法(只需设置usefile =“false”并让ccnet做其事)。这没用。
我也试过手动方法,设置usefile =“true”,然后合并nant-results.xml和name.dll-results.xml文件(没有通配符,只使用我有三倍文件的确切路径检查。)
它根本没有任何意义