我正在尝试使用我的单元测试生成的HTML报告在CruiseControl.NET仪表板中显示,但我不知道我在哪里发现它。
我在“CCNetWorkingDirectory”中生成了我的报告。在我的“CCNet.config”文件中,我使用File Merge Task将报告复制到我的“CCNetArtifactDirectory”。这是不起作用的步骤。我用很多不同的方式尝试过它。我有:
<publishers>
<merge>
<files>
<file>
Index.html
</file>
<file action="Copy">
rep\Index.html
</file>
</files>
</merge>
<xmllogger/>
</publishers>
配置文件中的路径应该是什么?我的构建打破了消息:
“失败的任务:MergeFilesTask”
我真的不知道自己做错了什么。
答案 0 :(得分:1)
我终于解决了这个问题。
在发布商节点的 ccnet.config 文件中,我必须像这样复制report.html:
<publishers>
<merge>
<files>
<file action="Copy">PathToWorkingDirectory\report.html</file>
</files>
</merge>
<xmllogger />
<artifactcleanup cleanUpMethod="KeepLastXBuilds"
cleanUpValue="50" />
</publishers>
该文件将被复制到工件目录中,并复制到名为Build Label的文件夹中。由于安全原因,必须这样做:
HTML源位置
此插件可以显示项目的artifacts文件夹下的build文件夹中的任何文件。它无法显示来自任何其他位置的文件(出于安全原因)。
要显示HTML报告,您只需将此行添加到 dashboard.config :
<htmlReportPlugin description="HRMLReport" actionName="htmlreport" htmlFileName="report.html" />
此行必须放在 buildPlugins 节点下。
<buildPlugins>
<buildReportBuildPlugin>
<xslFileNames>
<xslFile>xsl\header.xsl</xslFile>
<xslFile>xsl\modifications.xsl</xslFile>
</xslFileNames>
</buildReportBuildPlugin>
<buildLogBuildPlugin disableHighlightingWhenLogExceedsKB="50"/>
<htmlReportPlugin description="HRMLReport" actionName="htmlreport" htmlFileName="report.html" />
</buildPlugins>
执行这些步骤后,如果您在仪表板中导航到生成文件的构建,则应显示您的报告。应该有一个名为 HTMLReport 的链接。
答案 1 :(得分:0)
快速版:
请注意以下所有示例:
http://www.cruisecontrolnet.org/projects/ccnet/wiki/File_Merge_Task
是“* .xml”文件。
<merge>
<files>
<file>Nunit*.xml</file>
<file>FXCop.xml</file>
<file>resources\**\*.xml</file>
<file>E:\CruiseControl\BuildRoot\ProjectX\**\coderesults.xml</file>
<file>E:\CruiseControl\BuildRoot\Project*\**\Business*.xml</file>
</files>
</merge>
你需要合并.xml,而不是.htm(l)。
版本更长:
合并任务合并~xml。
每当有构建时,都会有一个“MyBuildResults.xml”文件,我称之为“super-xml”。
如果您有一个工具(例如NUnit(console).exe),该工具将推出一个文件“NUnitTestResults.xml”。
然后,CruiseControl.NET合并任务将采用“NUnitTestResults.xml”(可操作的,它是XML)并将其“合并”到MyBuildResults.xml中(再次,XML)。那种有道理。您可以将XML合并到其他XML中。你如何获取任何文件并将其合并到任何文件中,包括.html文件。如果你合并HTML,首先是什么?持续?中间?
现在,一旦你有了一个最终的“MyBuildResults.xml”,就会有.XSL文件将其转换为.html,显示在CruiseControl.NET项目网页中。
您会注意到CruiseControl.NET网页上的一堆链接(左侧)......其中一个是“NUnit测试结果”。但开箱即用,如果点击它,则不显示任何内容。
那是因为没有NUnitTestResults.xml“合并”到super-build-xml文件中。
如果您找到CruiseControl.NET为您安装的.xsl文件(或者您事后安装),请查看这些文件,它们将向您展示.xsl如何转换“超级构建 - 的XML” XML”。