代码之家  ›  专栏  ›  技术社区  ›  Jason Brant

需要实现自定义Fitness响应程序

  •  2
  • Jason Brant  · 技术社区  · 16 年前

    我认为我需要为客户实施定制的Fitness响应器,但在我的研究/尝试中没有发现太多成功。其想法是客户机将有一套用fitness编写的测试,但是结果将通过本地Intranet上的Web服务发布到他们的数据库中。我们希望以一种宁静的方式通过URL调用测试,和/或通过Fitnesse页面上的另一个按钮调用自定义响应程序。理想情况下,这将运行测试、收集和分析结果,然后通过Web服务发布。我希望我能得到一些关于如何实现这一点的想法/提示,因为我快疯了。@@任何帮助都将不胜感激!谢谢!

    3 回复  |  直到 12 年前
        1
  •  1
  •   user38993    16 年前

    我一直在调查同样的事情,这就是我认为的情况…

    你可以在一个宁静的庄园里调用任何fitness测试。例如,要执行测试并获取XML格式的结果: http://myHost:myPort/MyWikiPage?responder=test&format=xml .

    有关与Fitnesse进行RESTfully交互的详细信息,请参阅Fitnesse页面fitnesse.userguide.restfulservices。

    对于您想要做的事情,这种宁静的方法的问题在于,它要求您包装Fitnesse的执行;这意味着,如果您希望用户能够通过正常方式运行测试,请转到wiki并按下测试按钮,在这种情况下,不会向您的系统发送任何结果。当你逃避时,这个问题的解决方案似乎是通过自定义响应器。

    我认为答案是延长fitness测试响应器(和套件响应器)。如果您可以在现有响应程序源代码中找到结果可用的位置,那么您应该能够重写该方法,以根据需要额外处理结果,并将其发送到外部系统。

    响应者必须在Fitnesse注册。这是通过名为plugin.properties的文件(与fitnesse.jar位于同一位置)完成的。有关详细信息,请参阅fitnesse页面fitnesse.userguide.pluginusage。我假设Fitnesse允许覆盖默认响应程序,因此plugin.properties中的定义如下所示:

    responders=test:your.package.testreesponder,套件:your.package.suiteResponder

    要考虑的一件事是,您是否总是希望将结果发送到外部系统。例如,在开发测试时,混乱结果存储库并不总是有意义的。也许您只想在测试作为回归的一部分运行时发送结果。这些因素可能决定了您选择做什么,比如在“测试和发送结果”中添加另一个按钮,或者只将自定义响应程序部署到回归测试的系统,或者创建在测试中设置为“运行时发送结果”的属性。

    我很想知道你走哪条路;如果你让响应者去工作,我不介意知道你的解决方案。:)

        2
  •  0
  •   MichaelF    16 年前

    我也遇到过这样的问题,更多的是从PowerShell的命令行中获取fitness以RESTfully方式运行,我可以直接运行URL,并使用PowerShell捕获结果,但使用REST时,我甚至无法让PowerShell连接。如果你有一个机制让它运行,我很好奇你能怎么做,但是如果你只想找到一种运行脚本和获取结果的方法,PowerShell可以做到,如果你需要的话,你可以使用它将结果推送到数据库。

        3
  •  0
  •   Dan Woodward    16 年前

    实际上,我认为你根本不需要一个定制的响应器。使用restful services接口运行套件时,会返回一个类似于以下内容的XML块:

    <?xml version="1.0"?>
        <suiteResults>
          <FitNesseVersion>v20100103</FitNesseVersion>
          <rootPath>MgmtSuite</rootPath>
            <pageHistoryReference>
            <name>FrontPage.MgmtSuite.GroupTest</name>
            <date>01/07/2010 09:21:46</date>
            <pageHistoryLink>FrontPage.MgmtSuite.GroupTest?pageHistory&amp;resultDate=20100107092146</pageHistoryLink>
            <counts>
              <right>1</right>
              <wrong>1</wrong>
              <ignores>110</ignores>
              <exceptions>3</exceptions>
            </counts>
          </pageHistoryReference>
            <pageHistoryReference>
            <name>FrontPage.MgmtSuite.SchedulesTest</name>
            <date>01/07/2010 09:22:07</date>
            <pageHistoryLink>FrontPage.MgmtSuite.SchedulesTest?pageHistory&amp;resultDate=20100107092207</pageHistoryLink>
            <counts>
              <right>1</right>
              <wrong>1</wrong>
              <ignores>344</ignores>
              <exceptions>7</exceptions>
            </counts>
          </pageHistoryReference>
            <finalCounts>
            <right>0</right>
            <wrong>2</wrong>
            <ignores>0</ignores>
            <exceptions>0</exceptions>
          </finalCounts>
    
        </suiteResults>
    

    套件结果包含运行的每个测试,以及每个测试的摘要。如果您gra这个XML,您应该能够遍历每个测试,并获得页面历史链接,您可以使用它来请求特定测试的历史文件。您可以指定XML或HTML作为输出,获取该结果并将其保存。

    (注意,上面看到的XML实际上是合适的历史格式,而不是直接调用套件时收到的标准XML。一般格式相同)。

    在Pivotal Tracker上有一个故事,其中需要功能来请求测试或套件的最新运行。不确定什么时候能准备好,但实际上你可能不需要它。