2010-02-08 38 views
5

使用testrunner运行fitnesse测试后,我得到一个包含所有结果的xml文件。 现在我无法弄清楚如何在特定工作的哈德森GUI中显示这些结果。在Hudson GUI中显示Fitnesse XML报告

我浏览过网页,我发现有几个人从CruiseControl.NET修改xsd文件,但没有人真正显示它工作!

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

谢谢。 Yohann

回答

3

我将xslt的xml输出从fitnesse转换为junit格式并发布测试结果。 不幸的是,我无法获得哈德森内部显示的失败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> 
+0

你如何得到哈德森使用这个xslt?是否有某个模块或需要编写脚本? – 2011-08-25 15:53:41

1

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

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

当发布版本发布时,我会回来更新该功能。

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

为了得到它:

  1. Upate到1.350或更高哈德森
  2. 点击管理哈德森
  3. 选择页面
  4. 对FitNesse的可用插件
  5. 搜索安装该插件
  6. 配置它指向你的fitnesse.jar和FitNesseRoot。
2

不确定它是否正是你想要的,但如果你安装了Fitnesse plugin,你可以添加一个构建步骤输出xml。

Execute Fitnesse Build Script

然后你就可以从发布的XML这些结果作为生成后的行动。

Publish fitnesse results report (from xml)

+0

不知道提交者,但这正是我正在寻找的。 – 2014-05-07 12:59:01