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