Aquí podría ser tu PUBLICIDAD


Usando MBUnit en TeamCity

votos
13

Estoy compilando un proyecto NAnt en Linux con el servidor de Integración Continua TeamCity. He podido generar un informe de prueba ejecutando NAnt en mono a través de un Corredor de Línea de Comando, pero no tengo las opciones de usar el informe como un Corredor NAnt. También estoy usando MBUnit para el marco de prueba.

¿Cómo puedo fusionarme en el informe de prueba y mostrar Pruebas fallidas: 1 (1 nuevo), aprobado: 3049 para la compilación?

Actualización: eche un vistazo a MBUnitTask, es una tarea NAnt que utiliza mensajes de envío que TeamCity espera de NUnit, por lo que le permite usar todas las características de TeamCity para las pruebas.

MBUnitTask

Actualización: Galio tiene una mejor compatibilidad por lo que solo tiene que hacer referencia a los dlls 3.5 de Galio MBUnit en lugar de los dlls 3.5 de MBUnit y cambiar al corredor de galio para que funcione.

Publicado el 06/08/2008 a las 08:41
fuente por usuario Scott Cowan
En otros idiomas...        العربية       

4 respuestas

votos
6

Gallio ahora tiene una extensión para enviar mensajes de servicio de TeamCity. Simplemente use el Gallio.NAntTasks.dll incluido y habilite la extensión TeamCity. (esto no será necesario en la próxima versión )

Respondida el 19/05/2009 a las 12:07
fuente por usuario Mauricio Scheffer


Aquí podría ser tu PUBLICIDAD


votos
4

TeamCity observa la salida de la línea de comando desde la construcción. Puede dejarle saber cómo van sus pruebas insertando ciertos marcadores en esa salida. Consulte http://www.jetbrains.net/confluence/display/TCD3/Build+Script+Interaction+with+TeamCity . Por ejemplo

##teamcity[testSuiteStarted name='Test1']

le informará a TeamCity que comenzó un conjunto de pruebas. Con MbUnit no puede generar estos marcadores mientras se ejecutan las pruebas, pero puede transformar el archivo XML que genera. Aquí está el XSL que estoy usando:

<?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>
Respondida el 07/08/2008 a las 12:49
fuente por usuario Lance Fisher

votos
3

Esto es lo que se me ocurrió

¿Cómo puedo fusionarme en el informe de prueba?

Primero tendrá que obtener mbunit para generar un informe XML y HTML. Los argumentos de la línea de comando se ven así

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

esto generará los informes en un directorio llamado informes y el archivo se llamará mbunit.xml y mbunit.html

luego queremos agregar estos archivos como artefactos en la construcción

build\reports\* => Reports

el último paso es decirle a teamcity que lo agregue como una pestaña para la compilación

encuentre el .BuildServer \ config \ main-config.xml y agregue esta línea (en Windows esto está en c: \ Documents and Settings \, en Linux estaba en el directorio / root)

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

¿Cómo puedo mostrar "Pruebas fallidas: 1 (1 nueva), aprobada: 3049" para la compilación?

TeamCity busca un archivo llamado teamcity-info.xml donde puede pegar los mensajes para que se muestren. El recuento de prueba real es en realidad solo texto sin formato. Creo que puedes agregar el archivo como un artefacto pero también lo tengo en el directorio raíz de la compilación.

en NAnt querrá usar este comando para hacer un XSLT en el informe MBUnit XML

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

el xsl real se ve así. (Nota: que {y} están reservados en xsl, así que tenemos que usar 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>

Esto le dará un archivo que se parece a esto

<build number="1.0.{build.number}">
   <statusInfo status="FAILURE">
      <text action="append">Tests failed: 16, passed: 88</text>
   </statusInfo>
</build>
Respondida el 27/08/2008 a las 03:14
fuente por usuario Scott Cowan

votos
-1

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

Respondida el 11/02/2010 a las 06:21
fuente por usuario Sergey