mono - русском - teamcity тестирование




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

Я собираю проект NAnt на Linux с сервером Continuous Integration TeamCity. Я смог создать тестовый отчет, запустив NAnt на монохромном Runner, но не имеет возможности использовать отчет как NAnt Runner. Я также использую MBUnit для платформы тестирования.

Как я могу объединиться в отчете об испытаниях и отобразить «Тесты не удались: 1 (1 новый), прошло: 3049» для сборки?

Обновление: взгляните на MBUnitTask на свою задачу NAnt, которая использует отправляет сообщения, которые TeamCity ожидает от NUnit, поэтому позволяет использовать все возможности TeamCity для тестов.

MBUnitTask

Обновление: Galio имеет лучшую поддержку, поэтому вам просто нужно ссылаться на DLL Galio MBUnit 3.5 вместо DLL MBUnit 3.5 и переключиться на бегун galio, чтобы он работал.


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>