2010-02-08 9 views
5

Después de ejecutar la prueba de fitnesse usando testrunner, obtengo un archivo xml que contiene todos los resultados. Ahora no puedo entender cómo mostrar esos resultados dentro de la GUI de Hudson para un trabajo específico.Visualizar informes XML de Fitnesse dentro de Hudson GUI

He navegado por la web, y lo que encontré es un par de personas que modifican el archivo xsd de CruiseControl.NET, ¡pero nadie lo muestra realmente funcionando!

Si alguien pudiera ayudarme o señalarme en la dirección correcta, eso sería muy apreciado.

Gracias. Yohann

Respuesta

3

Transformo la salida xml por un formato xslt de fitnesse a junit y publico los resultados de las pruebas. Desafortunadamente, no pude obtener el resultado html de una falla mostrada dentro de Hudson, sin embargo, no es un problema real ya que todo lo que quiero saber es si mis pruebas de aceptación son correctas.

A continuación se muestra una copia del xslt que uso.

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
    <xsl:element name="testsuite"> 
    <xsl:attribute name="tests"> 
     <xsl:value-of select="sum(testResults/finalCounts/*)" /> 
    </xsl:attribute> 
    <xsl:attribute name="failures"> 
     <xsl:value-of select="testResults/finalCounts/wrong" /> 
    </xsl:attribute> 
    <xsl:attribute name="disabled"> 
     <xsl:value-of select="testResults/finalCounts/ignores" /> 
    </xsl:attribute> 
    <xsl:attribute name="errors"> 
     <xsl:value-of select="testResults/finalCounts/exceptions" /> 
    </xsl:attribute> 
    <xsl:attribute name="name">AcceptanceTests</xsl:attribute> 
    <xsl:for-each select="testResults/result"> 
    <xsl:element name="testcase"> 
     <xsl:attribute name="classname"> 
     <xsl:value-of select="/testResults/rootPath" /> 
     </xsl:attribute> 
     <xsl:attribute name="name"> 
     <xsl:value-of select="relativePageName" /> 
     </xsl:attribute> 
     <xsl:choose> 
     <xsl:when test="counts/exceptions > 0"> 
      <xsl:element name="error"> 
      <xsl:attribute name="message"> 
       <xsl:value-of select="counts/exceptions" /> 
       <xsl:text> exceptions thrown</xsl:text> 
       <xsl:if test="counts/wrong > 0"> 
       <xsl:text> and </xsl:text> 
       <xsl:value-of select="counts/wrong" /> 
       <xsl:text> assertions failed</xsl:text> 
       </xsl:if> 
      </xsl:attribute> 
      </xsl:element> 
     </xsl:when> 
     <xsl:when test="counts/wrong > 0"> 
      <xsl:element name="failure"> 
      <xsl:attribute name="message"> 
       <xsl:value-of select="counts/wrong" /> 
       <xsl:text> assertions failed</xsl:text> 
      </xsl:attribute> 
      </xsl:element> 
     </xsl:when> 
     </xsl:choose> 
    </xsl:element> 
    </xsl:for-each> 
    </xsl:element> 
</xsl:template> 
</xsl:stylesheet> 
+0

¿Cómo se obtiene Hudson para utilizar este XSLT? ¿Hay algún módulo en alguna parte o es necesario escribir un script? –

1

Hay algunos cambios en FitNesse que admitirán la devolución de los resultados del formato junit. No estoy seguro de la fecha exacta, pero cuando lo hagan, la necesidad de una actividad de transformación separada debería desaparecer.

Debería ser posible ejecutar pronto la prueba en hudson con el nuevo argumento de línea de comando -c para ejecutar la prueba y luego ejecutarla una segunda vez con un argumento -c para solicitar los últimos resultados para la prueba en formato junit . Lo mismo debe aplicarse para suites.

Volveré una actualización cuando salga el lanzamiento que tiene esa funcionalidad funcionando.

Estoy de vuelta. El enfoque -c aún tiene algo que hacer, sin embargo, hay un nuevo Hudson Plugin que puede instalar directamente desde Hudson. No es la solución de idea para mi equipo en este momento, pero está funcionando para algunos equipos.

Para conseguirlo:

  1. Upate a 1.350 o superior Hudson
  2. Haga clic en Administrar Hudson
  3. Ver Disponibles plugins
  4. Buscar FitNesse en la página
  5. Instalar ese plugin
  6. Configure it t apunte a su fitnesse.jar y FitNesseRoot.
2

No estoy seguro si es exactamente lo que está buscando, pero si se instala el Fitnesse plugin, se puede añadir un paso de generación que da salida XML.

Execute Fitnesse Build Script

Y entonces usted puede publicar los resultados del XML como una acción posterior a la generación.

Publish fitnesse results report (from xml)

+0

No sé sobre el remitente, pero esto era exactamente lo que estaba buscando. –

Cuestiones relacionadas