Používání MBUnit v TeamCity

hlasů
13

Jsem sestavování projektu NANT na Linuxu s TeamCity Continuous Integration Server. Byl jsem schopen generovat zprávu o zkoušce spuštěním NANT na mono a okolí prostřednictvím příkazového řádku Runner, ale nemají možnosti využití sestavy, jako je NANT Runner. Jsem také pomocí MBUnit pro rámec testování.

Jak mohu sloučit ve zprávě o zkoušce a zobrazí „Testy se nezdařilo: 1 (1 nový), po tomto čase: 3049“ pro sestavení?

Aktualizace: se podívat na MBUnitTask Jeho úkolem NANT který používá odesílá zprávy, které TeamCity očekává od NUnit tak to vám umožní používat všechny funkce TeamCity pro testy.

MBUnitTask

Aktualizace: Galio má lepší podporu takže stačí odkazovat DLL Galio MBUnit 3,5 namísto DLL MBUnit 3.5 a přepnout na Galio běžce, aby to fungovalo.

Položena 06/08/2008 v 08:41
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
6

Gallio má nyní rozšíření pro služby zpráv výstup TeamCity. Stačí použít přiložený Gallio.NAntTasks.dll a umožnit rozšíření TeamCity. (to nebude nutné v příští verzi )

Odpovězeno 19/05/2009 v 00:07
zdroj uživatelem

hlasů
4

TeamCity sleduje výstup příkazového řádku z sestavení. Můžete nechat ho vědět, jak vaše testy se děje vložením některé znaky do tohoto výstupu Viz http://www.jetbrains.net/confluence/display/TCD3/Build+Script+Interaction+with+TeamCity . Například

##teamcity[testSuiteStarted name='Test1']

dáme TeamCity vědět, že sada testů začalo. S MbUnit nelze výstup tyto markery, zatímco testy jsou spuštěny, ale můžete proměnit soubor XML, který je výstupem. Zde je XSL, který jsem pomocí:

<?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>
Odpovězeno 07/08/2008 v 00:49
zdroj uživatelem

hlasů
3

Tady je to, co jsem přišel

Jak lze sloučit do protokolu o zkoušce?

Za prvé, budete muset dostat mbunit generovat oba XML a zprávu ve formátu HTML. Argumenty příkazové řádce vypadat následovně

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

to bude generovat reporty do dir volal hlásí a soubor se bude nazývat mbunit.xml a mbunit.html

vedle chceme přidat tyto soubory jako artefakty na sestavení

build\reports\* => Reports

Posledním krokem je zjistit teamcity přidat jej jako karta pro sestavení

najít .BuildServer \ config \ Main-config.xml a přidejte tento řádek (na oknech To je v C: \ Documents and Settings \, na Linuxu bylo v adresáři / root dir)

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

Jak lze zobrazit „Testy se nezdařilo: 1 (1 nový), po tomto čase: 3049“ pro sestavení?

TeamCity hledá soubor s názvem teamcity-info.xml, kde si můžete držet zprávy, které mají být zobrazeny. Skutečné počet test je vlastně jen prostý text. Myslím, že stačí přidat soubor jako artefakt, ale také jsem ho do kořenového smer sestavení.

V NANT budete chtít použít tento příkaz k tomu XSLT na MBUnit XML zprávě

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

skutečné XSL vypadá takto. (Poznámka: že {a} jsou vyhrazeny v XSL tak musíme použít 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>

To vám dá soubor, který vypadá takto

<build number="1.0.{build.number}">
   <statusInfo status="FAILURE">
      <text action="append">Tests failed: 16, passed: 88</text>
   </statusInfo>
</build>
Odpovězeno 27/08/2008 v 15:14
zdroj uživatelem

hlasů
-1

TeamCity Sidebar Gadget pro Windows Vista, Windows 7 http://teamcity-gadget.com

Odpovězeno 11/02/2010 v 18:21
zdroj uživatelem

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