Mit MBUnit in Teamcity

stimmen
13

Ich bin Kompilieren eines NAnt Projekt auf Linux mit Teamcity Continuous Integration Server. Ich konnte durch Ausführen von NAnt auf Mono durch eine Command Line Runner einen Prüfbericht erzeugen, aber nicht über die Optionen den Bericht wie ein NAnt Runner verwenden. Ich verwende auch MBUnit für den Test-Framework.

Wie kann ich im Prüfbericht fusionieren und angezeigt werden „Tests fehlgeschlagen: 1 (1 neu), übergeben: 3049“ für den Build?

Update: werfen Sie einen Blick auf MBUnitTask sein eine NAnt Aufgabe , die Nachrichten verwendet sendet , die von Teamcity NUnit erwartet , so dass es Sie alle Teamcity-Funktionen für Tests verwenden können.

MBUnitTask

Update: Galio hat eine bessere Unterstützung , so dass Sie nur die Galio MBUnit 3.5 DLLs verweisen müssen anstelle der MBUnit 3.5 dlls und wechseln auf die galio Läufer , damit es funktioniert.

Veröffentlicht am 06/08/2008 um 08:41
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
6

Gallio hat nun eine Erweiterung zur Ausgabe von Teamcity Servicemeldungen. Verwenden Sie einfach das mitgelieferte Gallio.NAntTasks.dll und ermöglichen die Erweiterung Teamcity. (dies wird in der nächsten Version nicht notwendig sein )

Beantwortet am 19/05/2009 um 00:07
quelle vom benutzer

stimmen
4

Teamcity Uhren die Befehlszeile Ausgabe aus dem Build. Sie können es wissen lassen, wie Ihre Tests durch Einfügen bestimmter Marker in dieser Ausgabe werden Siehe http://www.jetbrains.net/confluence/display/TCD3/Build+Script+Interaction+with+TeamCity . Beispielsweise

##teamcity[testSuiteStarted name='Test1']

läßt Teamcity wissen, dass eine Reihe von Tests begonnen. Mit MbUnit können Sie diesen Marker nicht ausgegeben, während die Tests laufen, aber Sie können die XML-Datei umwandeln, die es gibt. Hier ist die XSL, die ich benutze:

<?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>
Beantwortet am 07/08/2008 um 00:49
quelle vom benutzer

stimmen
3

Hier ist, was ich kam mit

Wie kann ich im Prüfbericht fusionieren?

Zuerst müssen Sie bekommen MbUnit sowohl eine XML und HTML-Bericht zu erstellen. Die Kommandozeilenargumente wie folgt aussehen

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

dies wird für die Berichte in einem Verzeichnis namens Berichte erstellen und die Datei mbunit.xml und mbunit.html werden genannt

Als nächstes wollen wir diese Dateien als Artefakte auf dem Build hinzufügen

build\reports\* => Reports

der letzte Schritt ist Teamcity zu sagen, es als Registerkarte für den Build hinzufügen

finden die .BuildServer \ config \ main-config.xml und fügen Sie diese Zeile (auf Windows diese in C: \ Dokumente und Einstellungen \, unter Linux war es in der / root dir)

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

für den Build Wie kann ich "3049: 1 (1 neu), bestanden Tests fehlgeschlagen" angezeigt werden?

Teamcity sucht eine Datei-Teamcity info.xml genannt, wo Sie Nachrichten in angezeigt werden soll haften können. Die eigentliche Test Anzahl ist eigentlich nur Klartext. Ich denke, man kann nur die Datei als ein Artefakt hinzufügen, aber ich habe es auch im Stammverzeichnis des Build.

in NAnt mögen Sie diesen Befehl verwenden, um einen XSLT auf dem MBUnit XML-Bericht zu tun

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

die tatsächliche xsl sieht wie folgt aus. (Hinweis: dass die {} und sind in xsl reserviert, damit wir params verwenden)

<?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>

Dadurch erhalten Sie eine Datei, die wie folgt aussieht

<build number="1.0.{build.number}">
   <statusInfo status="FAILURE">
      <text action="append">Tests failed: 16, passed: 88</text>
   </statusInfo>
</build>
Beantwortet am 27/08/2008 um 15:14
quelle vom benutzer

stimmen
-1

Teamcity Sidebar Gadget für Windows Vista, Windows 7 http://teamcity-gadget.com

Beantwortet am 11/02/2010 um 18:21
quelle vom benutzer

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