L'utilisation MBUnit dans TeamCity

voix
13

Je compile un projet NAnt sur linux avec TeamCity serveur d'intégration continue. Je suis en mesure de générer un rapport de test en cours d'exécution sur NAnt mono à travers une ligne de commande Runner, mais ne pas les options d'utilisation du rapport comme un NAnt Runner. J'utilise aussi MBUnit pour le cadre de tests.

Comment puis-je fusionner dans le rapport d'essai et afficher « l'échec des tests: 1 (1 nouveau), passé: 3049 » pour la construction?

Mise à jour: jetez un oeil à MBUnitTask sa tâche Une NAnt qui utilise envoie des messages qui TeamCity attend de NUnit il vous permet d' utiliser toutes les fonctionnalités de TeamCity pour les tests.

MBUnitTask

Mise à jour: Galio a un meilleur support il vous suffit de référencer les Galio MBUnit 3.5 dll au lieu des 3,5 MBUnit dll et passer au coureur galio pour le faire fonctionner.

Créé 06/08/2008 à 08:41
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
6

Gallio a maintenant une extension aux messages de service sortie TeamCity. Il suffit d' utiliser le Gallio.NAntTasks.dll inclus et activer l'extension TeamCity. (ce ne sera pas nécessaire dans la prochaine version )

Créé 19/05/2009 à 00:07
source utilisateur

voix
4

TeamCity regarde la ligne de commande de sortie à partir de la construction. Vous pouvez le faire savoir comment vos tests vont en insérant certains marqueurs dans cette sortie Voir http://www.jetbrains.net/confluence/display/TCD3/Build+Script+Interaction+with+TeamCity . Par exemple

##teamcity[testSuiteStarted name='Test1']

laissera TeamCity savoir qu'une série de tests a commencé. Avec MbUnit vous ne pouvez pas émettre ces marqueurs alors que les tests sont en cours d'exécution, mais vous pouvez transformer le fichier XML qu'il génère. Voici le XSL que j'utilise:

<?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>
Créé 07/08/2008 à 00:49
source utilisateur

voix
3

Voici ce que je suis venu avec

Comment puis-je fusionner dans le rapport d'essai?

D'abord, vous aurez besoin de MbUnit obtenir à la fois un XML générer et rapport HTML. Les arguments de ligne de commande ressemblent à ceci

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

cela va générer les rapports dans un rapport appelé dir et le fichier sera appelé mbunit.xml et mbunit.html

Ensuite, nous voulons ajouter ces fichiers comme des objets sur la construction

build\reports\* => Reports

la dernière étape consiste à dire TeamCity pour l'ajouter sous forme d'onglet pour la construction

trouver le .BuildServer \ config \ principale config.xml et ajoutez cette ligne (sur les fenêtres c'est dans c: \ Documents and Settings \, sur linux il était dans le répertoire / dir racine)

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

Comment puis-je afficher « l'échec des tests: 1 (1 nouveau), adopté: 3049 » pour la construction?

TeamCity recherche un fichier appelé TeamCity-info.xml où vous pouvez coller des messages pour afficher. Le nombre de tests réels est en fait juste du texte. Je pense que vous pouvez simplement ajouter le fichier comme un artefact, mais je l'ai aussi obtenu dans le répertoire racine de la construction.

en NAnt vous voulez utiliser cette commande pour faire une XSLT sur le rapport XML MBUnit

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

la xsl réelle ressemble à ceci. (Note: que le {et} sont réservés à xsl donc nous devons utiliser 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>

Cela vous donnera un fichier qui ressemble à ceci

<build number="1.0.{build.number}">
   <statusInfo status="FAILURE">
      <text action="append">Tests failed: 16, passed: 88</text>
   </statusInfo>
</build>
Créé 27/08/2008 à 15:14
source utilisateur

voix
-1

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

Créé 11/02/2010 à 18:21
source utilisateur

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