Xml CruiseControl、Specflow HTML报告文件合并任务有时失败

Xml CruiseControl、Specflow HTML报告文件合并任务有时失败,xml,cruisecontrol.net,specflow,cruisecontrol,Xml,Cruisecontrol.net,Specflow,Cruisecontrol,我试图为我的巡航控制集成测试运行提供Specflow html报告,但我遇到了一个奇怪的问题。当所有测试都通过且构建成功后,可以按预期在巡航控制仪表板中查看specflow html报告。但是,如果构建失败,也就是说,如果任何specflow场景没有通过,那么当我尝试查看html报告时,巡航控制输出找不到文件 这是我的ccnet.config的相关部分: <publishers> <exec> <executable>(path)specf

我试图为我的巡航控制集成测试运行提供Specflow html报告,但我遇到了一个奇怪的问题。当所有测试都通过且构建成功后,可以按预期在巡航控制仪表板中查看specflow html报告。但是,如果构建失败,也就是说,如果任何specflow场景没有通过,那么当我尝试查看html报告时,巡航控制输出找不到文件

这是我的ccnet.config的相关部分:

   <publishers>
   <exec>
    <executable>(path)specflow.exe </executable>
    <baseDirectory>(path)</baseDirectory>
    <buildArgs> nunitexecutionreport (path)/(file) 
    /xmlTestResult:(path)\TestResults\testReport_nunit.xml 
    /out:(path)\testReport.html </buildArgs>
    <successExitCodes>0</successExitCodes>
  </exec>
  <merge>
    <files>
      <file>(path)\TestResults\testReport.xml</file>
      <file action="Copy">(path)\TestResults\testReport.html</file>
      <file>(path)\TestResults\codeCoverage.xml</file>
    </files>
  </merge>

我也有同样的问题。我所做的是:

在我的项目labeller中使用incrementOnFailure选项,这样对于每个构建,无论成功还是失败,我都有一个不同的工件目录 url/build/log20141003022201.xml/RetrieveBuildFile.aspx?file=TestResult.html尚未工作,但url RetrieveBuildFile.aspx?file=../{$buildNb}/TestResult.html工作正常。我有一个旧版本的CCNET1.5,它可能与新版本一起工作。 我编写了一个自定义xsl来链接到这个url。这是主要代码 编辑:我刚刚安装了1.8.5版本,url/build/log20141003022201.xml/RetrieveBuildFile.aspx?file=TestResult.html运行良好。因此,我将xsl更改为以下内容


如果查看原始xml构建日志,它会显示什么?在生成日志中找不到消息的文件部分吗?我在生成日志中没有看到任何关于报告的内容只是为了确认,生成日志xml不包含文本“找不到文件”?这是正确的。我在构建日志上按了CTRL+F组合键,但文本不在那里。当我去查看iframe中出现的Specflow报告时。再一次,如果构建成功,报告工作正常。好的,询问的原因是此文本必须来自specflow,当某些内容不在构建日志中时,可能是一个bug。我想知道是否是在合并/发布阶段将此内容嵌入到日志中。
<xsl:if test="contains(//cruisecontrol/parameters/parameter[@name='$CCNetProject']/@value,'Specflow')">
    <!-- hack to have the good path to TestResult.html -->
    <xsl:variable name="buildNb" select="//cruisecontrol/parameters/parameter[@name='$CCNetLabel']/@value" />
    <div style="text-align:right; margin:5px; width:100%;">
      <a href="RetrieveBuildFile.aspx?file=../{$buildNb}/TestResult.html" target="_blank">View this report in its own window</a>
    </div>
    <div>
      <iframe src="RetrieveBuildFile.aspx?file=../{$buildNb}/TestResult.html" border="1" width="100%" height="1000"></iframe>
    </div>
    <!-- /hack-->
</xsl:if>
<xsl:if test="contains(//cruisecontrol/parameters/parameter[@name='$CCNetProject']/@value,'Specflow')">
    <div style="text-align:right; margin:5px; width:100%;">
      <a href="RetrieveBuildFile.aspx?file=TestResult.html" target="_blank">View this report in its own window</a>
    </div>
    <div>
      <iframe src="RetrieveBuildFile.aspx?file=TestResult.html" border="1" width="100%" height="1000"></iframe>
    </div>
</xsl:if>