当Nant构建文件执行NUnit时,CruiseControl.NET查看NUnit XML测试结果。

9

我有一个Nant构建文件,在编译dll后执行NUnit。我使用CruiseControl中的任务执行NAnt构建文件。因此,运行测试的是NAnt而不是CruiseControl。

如何配置使得CruiseControl Web仪表板可用于查看NUnit输出?


这样可以解决问题:

<publishers>
    <merge>
        <files>
                 <file>build\*.test-result.xml</file>
        </files>
    </merge>
    <xmllogger />
 </publishers>
3个回答

6

您希望使用CruiseControl的合并功能来获取NUnit的XML输出。这是我们公司所采用的情况,似乎运作得相当不错。以下是配置片段(此片段位于CCNet.config中的<publishers>元素中):

 <merge>
     <files>
         <file><path to XML output>\*.xml</file>
     </files>
 </merge>

希望这对你有用。

我在服务器日志中看到它合并了文件,但是如果我在Web仪表板中选择NUnit详细信息链接,我仍然看不到运行的测试。 - hollystyles
在ccnet.config文件的<publishers>元素中的<merge>元素之后放置<xmllogger />非常重要。 - hollystyles
非常好的观点...我希望能看到CCNet配置文件变得更加宽容一些...或者至少在事情出错时提供更好的反馈。 - ckramer

2

对于这个问题,我也遇到了同样的情况(CC.Net触发Nant进行编译和NUnit工作),我的NUnit输出也没有出现在CC.Net上。我已经在我的<publisher>任务中加入了<merge>任务(并在<xmllogger>任务之前),但仍然没有效果。

唯一我没有添加的是<project>节点中的<workingDirectory>节点,因为我不需要显式地使用它。当我添加了这个节点后,我的NUnit输出立即出现了。看起来有某种依赖关系。希望这能帮助你们中的一些人。


不错的发现,清除那些依赖关系! - hollystyles

0
请确保在dashboard.config文件中,在section部分中有一个有效的xsl文件,我们使用ncover运行nunit,并使用此xsl\NCoverExplorer.xsl文件。我认为我们从ncover安装的地方获取了xsl文件。
还要确保此行正确:
然后,请确保在ccnet.config文件中,在section部分下列出了来自nunit测试的xml输出。
还要确保将xsl文件放在webdashboard下的xsl文件夹中。

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