需要实现自定义Fitnesse响应器

时间:2010-01-14 16:22:28

标签: java rest fitnesse

我认为我需要为客户实施自定义Fitnesse响应器,但在我的研究/尝试使这项工作中没有取得多大成功。我们的想法是客户端将使用Fitnesse编写测试套件,但结果将通过其本地Intranet上的Web服务发布到他们的数据库。我们希望以RESTful方式通过URL调用测试和/或通过Fitnesse页面上的另一个按钮调用自定义响应器。理想情况下,这将运行测试,收集并解析结果,然后通过Web服务发布。我希望我可以得到一些关于如何实现这一点的想法/提示,因为我正处于我的智慧结束。 @_@ 任何帮助将不胜感激!谢谢!

3 个答案:

答案 0 :(得分:1)

我一直在研究同样的事情,这就是我认为的情况......

您可以在RESTful庄园中调用任何FitNesse测试。例如。要执行测试并以XML格式获取结果:http://myHost:myPort/MyWikiPage?responder=test&format=xml

有关使用FitNesse进行RESTful交互的更多信息,请参阅FitNesse页面FitNesse.UserGuide.RestfulServices。

这种RESTful方法的问题,就是你要做的事情,它要求你包装FitNesse的执行;这意味着如果您希望用户能够通过正常的Go-To-Wiki-And-Press-The-Test-Button运行测试,那么在这种情况下不会向您的系统发送任何结果。正如您所说,这个问题的解决方案似乎是通过自定义响应者。

我认为答案是扩展FitNesse Test响应者(以及Suite响应者)。如果您可以找到结果可用的现有响应者源代码,那么您应该能够覆盖该方法以额外处理结果,但需要将其发送到外部系统。

响应者必须在FitNesse注册。这是通过名为plugin.properties的文件(与fitnesse.jar位于同一位置)完成的。有关详细信息,请参阅FitNesse页面FitNesse.UserGuide.PluginUsage。我假设FitNesse允许覆盖默认响应者,所以你在plugin.properties中的定义看起来像这样:

Responders = test:your.package.TestResponder,suite:your.package.SuiteResponder

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

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

答案 1 :(得分:0)

我也遇到了麻烦,更多的是让Fitnesse从Powershell的命令行运行RESTful,我可以直接运行URL并使用PowerShell捕获结果但是在使用REST时我甚至无法获得Powershell连接。如果你有一个让它运行的机制我很想知道如何做到这一点,但如果你想要的只是一种运行脚本并获得结果的方法,Powershell可以做到这一点,你可以使用它来将结果推送到如果需要,可以使用数据库。

答案 2 :(得分:0)

实际上,我认为你根本不需要自定义响应器。当您使用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>

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

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

Pivotal Tracker上有一个故事,需要功能才能请求最新的测试或套件运行。不知道什么时候准备就绪,但你可能实际上并不需要它。