Grails GEB测试在后续运行中失败

Grails GEB测试在后续运行中失败,grails,selenium,functional-testing,geb,Grails,Selenium,Functional Testing,Geb,我的应用程序使用以下版本: Geb:0.9.2 硒:2.26.0 Grails:2.1 斯波克:0.7 我在linux机器上运行,具有以下功能: Firefox:14 Centos:5.3 我有一个grails应用程序,在功能测试阶段使用Geb 如果我从一个干净的环境开始(.grails已经被删除),并且我运行我的测试,它们都会顺利通过,geb运行firefox,进行测试并向我提供报告 但是,功能测试的后续运行所有测试都将失败,原因如下: geb.giver.DriverCreation

我的应用程序使用以下版本:

  • Geb:0.9.2
  • 硒:2.26.0
  • Grails:2.1
  • 斯波克:0.7
我在linux机器上运行,具有以下功能:

  • Firefox:14
  • Centos:5.3
我有一个grails应用程序,在功能测试阶段使用Geb

如果我从一个干净的环境开始(.grails已经被删除),并且我运行我的测试,它们都会顺利通过,geb运行firefox,进行测试并向我提供报告

但是,功能测试的后续运行所有测试都将失败,原因如下:

geb.giver.DriverCreationException
这显然是由于:

java.lang.NoSuchMethodException
现在如果我扔掉我的.grails并再次运行,下一次传球就可以了。只是希望能够始终如一地运行测试

任何帮助都将不胜感激

干杯

更新:

以下是堆栈跟踪的要点(手工复制,因此对任何拼写错误表示歉意):

geb.driver.DriverCreationException:无法从回调“GebConfig$”创建驱动程序_closure@6f61a3c4'
位于geb.driver.CallbackDriverFactory.getDriver(CallbackDriverFactory.groovy:35)
在geb.driver.CalbackDriverFactory.getDriver\u closure3(CachingDriverFActory.groovy:80)
...
原因:java.lang.NoSuchMethodError:org.apache.http.conn.scheme.scheme(Ljava/lang/string;ILorg/apache/http/conn/scheme/SchemeSocketFactory;)V
位于org.openqa.selenium.remote.internal.HttpClientFactory.getClientConnectionManager(HttpClientFactory.java:59)
位于org.openqa.selenium.remote.internal.HttpClientFactory.(HttpClientFactory.java:48)
位于org.openqa.selenium.remote.HttpCommandExecuter。(HttpCommandExecuter.java:118)
...

我过去就有过这个问题。与stacktrace中的HttpDriver类完全相同,并在清理后的第二次运行中发生。这是由于您的一些Grails插件引入了一个冲突版本的HttpClient


我发现它通常是一个插件,可以过渡地拉入发布插件,但不会将其从导出中排除。找到罪魁祸首的方法是检查.grails目录中该应用程序的所有已安装插件,并查看它们的依赖关系,以找到将发布插件拉入的插件,然后删除它或将其更新为新版本,因为越来越多的插件作者将发布插件排除在导出之外,我也将其删除相信最新版本的release plugin不再依赖于HttpBuilder。

您能粘贴stacktraces吗?@erdi很遗憾,我无法访问web或从开发环境复制。不过,我已经手动复制了堆栈跟踪的前几行,并将其放置在上面的“编辑”中。干杯,你是个天才。嘶嘶,你是我们这些凡人中的神。我试图说服团队支持Geb测试,并且在每次运行之前都要大声说出我的.grails,这使它成为一个艰难的销售。但事实上,一位同事开发的一个插件忘记了导出发布插件。移除该选项,我们就可以开始了。:)很高兴听到你们正在使用Geb!
geb.driver.DriverCreationException: failed to create driver from callback 'GebConfig$_run_closure@6f61a3c4'
    at geb.driver.CallbackDriverFactory.getDriver(CallbackDriverFactory.groovy:35)
    at geb.driver.CalbackDriverFactory.getDriver_closure3(CachingDriverFActory.groovy:80)
    ...

Caused by: java.lang.NoSuchMethodError: org.apache.http.conn.scheme.Scheme.<init>(Ljava/lang/string;ILorg/apache/http/conn/scheme/SchemeSocketFactory;)V
    at org.openqa.selenium.remote.internal.HttpClientFactory.getClientConnectionManager(HttpClientFactory.java:59)
    at org.openqa.selenium.remote.internal.HttpClientFactory.<init>(HttpClientFactory.java:48)
    at org.openqa.selenium.remote.HttpCommandExecuter.<init>(HttpCommandExecuter.java:118)
    ...