Использование MBUnit в TeamCity

Другой слой косвенности:

for i in $(eval echo {1..$END}); do
    ∶
16
задан Scott Cowan 18 May 2009 в 06:13
поделиться

4 ответа

Gallio now has an extension to output TeamCity service messages. Просто используйте прилагаемый Gallio.NAntTasks.dll и включите расширение TeamCity. (этот не потребуется в следующем выпуске )

6
ответ дан 30 November 2019 в 23:05
поделиться

TeamCity наблюдает вывод командной строки от сборки. Можно сообщить ему, как тесты идут путем вставки определенных маркеров в тот вывод, См. http://www.jetbrains.net/confluence/display/TCD3/Build+Script+Interaction+with+TeamCity . Например

##teamcity[testSuiteStarted name='Test1']

позволит TeamCity знать что ряд запущенных тестов. С MbUnit Вы не можете произвести эти маркеры, в то время как тесты работают, но можно преобразовать XML-файл, который он производит. Вот XSL, который я использую:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>
    <xsl:template match="/">

        <xsl:apply-templates/>

    </xsl:template>

    <xsl:template match="assemblies/assembly">
##teamcity[testSuiteStarted name='<xsl:value-of select="@name" />']

        <xsl:apply-templates select="//run" />

##teamcity[testSuiteFinished name='<xsl:value-of select="@name" />']
    </xsl:template>

    <xsl:template match="run">

        <xsl:choose>
            <xsl:when test="@result='ignore' or @result='skip'">
        ##teamcity[testIgnored name='<xsl:value-of select="@name" />' message='Test Ignored']
            </xsl:when>
            <xsl:otherwise>
        ##teamcity[testStarted name='<xsl:value-of select="@name" />']
            </xsl:otherwise>
        </xsl:choose>


        <xsl:if test="@result='failure'">
            ##teamcity[testFailed name='<xsl:value-of select="@name" />' message='<xsl:value-of select="child::node()/message"/>' details='<xsl:value-of select="normalize-space(child::node()/stack-trace)"/>']
        </xsl:if>


        <xsl:if test="@result!='ignore' and @result!='skip'">
        ##teamcity[testFinished name='<xsl:value-of select="@name" />']
        </xsl:if>

    </xsl:template>

</xsl:stylesheet>
4
ответ дан 30 November 2019 в 23:05
поделиться

Вот то, что я придумал

, Как я могу объединиться в отчете о тестировании?

Первый необходимо будет заставить mbunit генерировать и XML и отчет HTML. Параметры командной строки похожи на это

/rt:Xml /rt:Html /rnf:mbunit /rf:..\reports

, это генерирует отчеты в названные отчеты dir, и файл назовут mbunit.xml и mbunit.html

следующий, мы хотим добавить эти файлы как артефакты на сборке

build\reports\* => Reports

, последний шаг должен сказать teamcity добавлять его, поскольку вкладка для сборки

находит.BuildServer\config\main-config.xml и добавляет эту строку (на окнах, это находится в c:\Documents and Settings\, на Linux это было в / корневом каталоге)

<report-tab title="Tests" basePath="Reports" startPage="mbunit.html" />

, Как может, я отобразить "Tests перестал работать: 1 (1 новое), переданный: 3049" для сборки?

TeamCity ищет файл под названием teamcity-info.xml, где можно всунуть сообщения, которые будут отображены. Фактическое тестовое количество является на самом деле просто текстом. Я думаю, что можно просто добавить файл как артефакт, но я также получил его в корневом каталоге сборки.

в NAnt Вы захотите использовать эту команду, чтобы сделать XSLT на Отчете

<style style="includes\teamcity-info.xsl" in="reports\mbunit.xml" out="..\teamcity-info.xml" />

MBUnit 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 &gt; 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>
3
ответ дан 30 November 2019 в 23:05
поделиться

Гаджет боковой панели TeamCity для Windows Vista, Windows 7 http://teamcity-gadget.com

-1
ответ дан 30 November 2019 в 23:05
поделиться