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