Question

Je suis à la compilation d'un NAnt projet sur linux avec TeamCity serveur d'Intégration Continue.J'ai été en mesure de générer un rapport de test en cours d'exécution NAnt sur mono via une Ligne de Commande de Coureur, mais n'ont pas les possibilités d'utilisation du rapport comme un NAnt Coureur.Je suis également en utilisant MBUnit pour l'infrastructure de test.

Comment puis-je les fusionner dans le rapport d'essai et d'affichage des résultats de Tests a échoué:1 (1 nouveau), adoptée:3049" pour le construire?

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

MBUnitTask

Mise à jour: Galio a un meilleur support de sorte que vous suffit de référence de la Galio MBUnit 3.5 dll au lieu de la MBUnit 3.5 dll et passer à la galio coureur pour le faire fonctionner.

Était-ce utile?

La solution

Gallion a maintenant une extension à la sortie de TeamCity les messages de service.Juste d'utiliser les Gallio.NAntTasks.dll et de permettre à la TeamCity extension.(cet ne sera pas nécessaire dans la prochaine version)

Autres conseils

TeamCity montres de la ligne de commande de sortie de la compilation.Vous pouvez laisser savoir comment vos tests sont en passant par l'insertion de certains marqueurs dans la sortie de ce Voir http://www.jetbrains.net/confluence/display/TCD3/Build+Script+Interaction+with+TeamCity.Par exemple

##teamcity[testSuiteStarted name='Test1']

permettra de TeamCity savez qu'un jeu de début des épreuves.Avec MbUnit vous ne pouvez pas sortir de 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>

Voici ce que j'ai trouvé

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

D'abord, vous aurez besoin d'obtenir mbunit à générer un XML et HTML.Les arguments de ligne de Commande ressemble à ceci

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

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

ensuite, nous voulons ajouter ces fichiers comme des artefacts sur l'accumulation

build\reports\* => Reports

la dernière étape est de dire teamcity pour ajouter un onglet pour le construire

trouver le .BuildServer\config\main-config.xml et ajouter cette ligne (sous windows, c'est dans c:\Documents and Settings\, sur linux, c'est dans /root dir)

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

Comment puis-je afficher "les Tests ont échoué:1 (1 nouveau), adoptée:3049" pour le construire?

TeamCity recherche un fichier appelé teamcity-info.xml où vous pouvez coller des messages à afficher.Le test de comptage est en fait tout simplement du texte.Je pense que vous pouvez simplement ajouter le fichier comme un artefact, mais j'ai aussi eu dans le répertoire racine de la construction.

dans NAnt vous aurez envie d'utiliser cette commande pour faire une transformation XSLT sur le MBUnit de Rapport XML

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

la réelle xsl ressemble à ceci.(Remarque:que les { et } sont réservés dans xsl nous devons donc 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 à ça

<build number="1.0.{build.number}">
   <statusInfo status="FAILURE">
      <text action="append">Tests failed: 16, passed: 88</text>
   </statusInfo>
</build>

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top