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

голоса
13

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

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

Обновление: посмотри на MBUnitTask Сва задача NAnt , которая использует отправляет сообщения, TeamCity ожидает от NUnit , так что позволяет использовать все функции Teamcity для испытаний.

MBUnitTask

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

Задан 06/08/2008 в 08:41
источник пользователем
На других языках...                            


4 ответов

голоса
6

Gallio теперь имеет расширение для служебных сообщений выхода Teamcity. Просто используйте входящий в комплект поставки Gallio.NAntTasks.dll и включить расширение Teamcity. (это не будет необходимости в следующем выпуске )

Ответил 19/05/2009 d 00:07
источник пользователем

голоса
4

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>
Ответил 07/08/2008 d 00:49
источник пользователем

голоса
3

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

Как можно объединить в протоколе испытаний?

Сначала вам нужно получить MbUnit генерировать как в XML и HTML отчетов. Аргументы командной строки выглядят следующим образом

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

это будет генерировать отчеты в Dir называется отчеты и файл будет называться mbunit.xml и mbunit.html

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

build\reports\* => Reports

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

найти .BuildServer \ Config \ главный-config.xml и добавьте эту строку (на окнах это в C: \ Documents и Settings \, на Linux это было в / корневой директории)

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

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

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

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

<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 &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>
Ответил 27/08/2008 d 15:14
источник пользователем

голоса
-1

TeamCity Sidebar гаджет для Windows Vista, Windows 7 http://teamcity-gadget.com

Ответил 11/02/2010 d 18:21
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more