これが私が思いついたものです
テスト レポートにマージするにはどうすればよいですか?
最初に、mbunit を取得して、XML と HTML の両方のレポートを生成する必要があります。コマンドライン引数は次のようになります
/rt:Xml /rt:Html /rnf:mbunit /rf:..\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 で予約されているため、params を使用する必要があります)
<?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>