2

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

4

3 回答 3

1

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

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

请参阅 FitNesse 页面 FitNesse.UserGuide.RestfulServices 了解有关与 FitNesse 进行 RESTful 交互的更多信息。

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

我相信答案是扩展 FitNesse 测试响应器(和套件响应器)。如果您可以在现有的响应程序源代码中找到结果可用的位置,那么您应该能够覆盖该方法以额外处理您需要的结果并将它们发送到您的外部系统。

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

响应者=测试:your.package.TestResponder,套件:your.package.SuiteResponder

要考虑的一件事是您是否总是希望将结果发送到您的外部系统。例如,在开发测试时,弄乱结果存储库并不总是有意义的。也许你真的只想在测试作为回归的一部分运行时发送结果。这些因运行时的结果”。

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

于 2010-01-14T21:59:15.450 回答
0

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

于 2010-01-15T14:00:07.297 回答
0

实际上,我认为您根本不需要自定义响应程序。当您使用 RESTful 服务接口来运行一个套件时,您会返回一个类似于以下内容的 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 上有一个故事,其中需要功能才能请求测试或套件的最新运行。不知道什么时候会准备好,但你可能实际上并不需要它。

于 2010-01-15T14:47:15.050 回答