这是我想出的
如何在测试报告中合并?
首先,您需要获取 mbunit 来生成 XML 和 HTML 报告。命令行参数如下所示
/rt:Xml /rt:Html /rnf:mbunit /rf:..\reports
这会将报告生成到一个名为 reports 的目录中,该文件将被称为 mbunit.xml 和 mbunit.html
接下来我们要将这些文件作为工件添加到构建中
build\reports\* => Reports
最后一步是告诉 teamcity 将其添加为构建的选项卡
找到 .BuildServer\config\main-config.xml 并添加这一行(在 Windows 上,它位于 c:\Documents and Settings\ 中,在 linux 上它位于 /root 目录中)
<report-tab title="Tests" basePath="Reports" startPage="mbunit.html" />
如何为构建显示“测试失败:1(1 个新),通过:3049”?
TeamCity 会查找一个名为 teamcity-info.xml 的文件,您可以在其中粘贴要显示的消息。实际测试计数实际上只是纯文本。我认为您可以将文件添加为工件,但我也将它放在构建的根目录中。
在 NAnt 中,您需要使用此命令对 MBUnit XML 报告执行 XSLT
<style style="includes\teamcity-info.xsl" in="reports\mbunit.xml" out="..\teamcity-info.xml" />
实际的 xsl 看起来像这样。(注意: { 和 } 在 xsl 中是保留的,所以我们必须使用参数)
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="cbl" select="'{'"/>
<xsl:param name="cbr" select="'}'"/>
<xsl:template match="/">
<xsl:for-each select="report-result/counter">
<build number="1.0.{concat($cbl,'build.number',$cbr)}">
<xsl:if test="@failure-count > 0">
<statusInfo status="FAILURE">
<text action="append"> Tests failed: <xsl:value-of select="@failure-count"/>, passed: <xsl:value-of select="@success-count"/></text>
</statusInfo>
</xsl:if>
<xsl:if test="@failure-count = 0">
<statusInfo status="SUCCESS">
<text action="append"> Tests passed: <xsl:value-of select="@success-count"/></text>
</statusInfo>
</xsl:if>
</build>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
这会给你一个看起来像这样的文件
<build number="1.0.{build.number}">
<statusInfo status="FAILURE">
<text action="append">Tests failed: 16, passed: 88</text>
</statusInfo>
</build>