Вот что я придумал
Как объединить протокол испытаний?
Сначала вам нужно получить 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 dir)
<report-tab title="Tests" basePath="Reports" startPage="mbunit.html" />
Как отобразить «Тесты не пройдены: 1 (1 новый), пройдено: 3049» для сборки?
TeamCity ищет файл с именем teamcity-info.xml, в который можно вставлять сообщения для отображения. Фактическое количество тестов на самом деле просто текст. Я думаю, вы можете просто добавить файл в качестве артефакта, но я также получил его в корневом каталоге сборки.
в NAnt вы хотите использовать эту команду для выполнения XSLT в отчете MBUnit XML
<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>