在Hudson GUI中显示Fitnesse XML报告

时间:2010-02-08 22:01:56

标签: xml hudson fitnesse

使用testrunner运行fitnesse测试后,我得到一个包含所有结果的xml文件。 现在我无法弄清楚如何在hudson GUI中为特定作业显示这些结果。

我上网了,我找到的是几个人从CruiseControl.NET修改xsd文件,但实际上没有人显示它正在工作!

如果有人可以帮助我或指出我正确的方向,那将非常感激。

谢谢。 Yohann

3 个答案:

答案 0 :(得分:3)

我将xml输出的xslt从fitnesse转换为junit格式并发布测试结果。 不幸的是,我无法在hudson中显示失败的html结果,但这不是一个真正的问题,因为我想知道的是我的验收测试是否正常。

下面是我使用的xslt的副本。

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

答案 1 :(得分:2)

FitNesse有一些变化将支持junit格式化结果的返回。我不确定确切的日期,但是当他们这样做时,需要进行单独的转换活动。

应该可以很快使用新的-c命令行参数在hudson中运行测试以运行测试,然后使用-c参数再次运行它以请求以junit格式进行测试的最新结果。同样适用于套房。

当发布版已经完成时,我会回来更新该功能。

我回来了。 -c方法还有一些工作要做,但是有一个新的Hudson插件可以直接在Hudson中安装。它现在不是我的团队的想法解决方案,但它适用于一些团队。

获得它:

  1. 升级到1.350或更高的Hudson
  2. 点击Manage Hudson
  3. 选择可用插件
  4. 在页面上搜索FitNesse
  5. 安装该插件
  6. 配置它指向你的fitnesse.jar和FitNesseRoot。

答案 2 :(得分:2)

不确定它是否正是您所追求的,但如果您安装了Fitnesse plugin,则可以添加一个输出xml的构建步骤。

Execute Fitnesse Build Script

然后,您可以将这些结果从xml发布为构建后操作。

Publish fitnesse results report (from xml)