2014-01-15 25 views
1

我的应用程序使用以下版本:Grails的创业板测试失败在之后的运行

  • 盖布:0.9.2
  • 硒:2.26.0
  • 的Grails:2.1
  • 斯波克:0.7

而且我正在Linux机器上运行以下内容:

  • 火狐:14周
  • 的Centos:5.3

我有一个Grails应用程序,我在功能测试阶段,使用盖布。

如果我从一个干净的环境(.grails已被擦掉)开始,并运行我的测试,它们都会很好地运行,geb运行firefox,做测试并给我报告。

然而随后的功能测试中运行所有测试将失败:

geb.giver.DriverCreationException 

这显然是造成:

java.lang.NoSuchMethodException 

现在,如果我垃圾我.grails并再次运行,下时间通行证罚款。只是想能够持续运行测试。

任何帮助将不胜感激!

干杯

UPDATE:

下面是堆栈跟踪的要点(手抄所以道歉,对任何拼写错误):

geb.driver.DriverCreationException: failed to create driver from callback '[email protected]' 
    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) 
    ... 
+0

你能粘贴stacktraces吗? – erdi

+0

@erdi不幸的是,我无法访问网络或从开发环境中复制。不过,我已经手工复制了堆栈跟踪的前几行,并放置在上面的编辑中。欢呼声 – DJOodle

回答

2

我在有这个确切的问题过去。恰好与堆栈跟踪中的HttpDriver类并在干净后的第二次运行中发生。这是由于您的一些Grails插件引入了冲突版本的HttpClient。

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

+0

你我的好人是个天才。呃,你是我们中间的一个神,就是凡人。我试图说服团队支持Geb测试,并且在每次运行之前都要将我的.grails作为硬销售。但确实有一位同事开发的插件已经忘记导出= false发布插件。消除这一点,我们很好去。 :) – DJOodle

+0

很高兴听到你们正在使用Geb! – erdi

相关问题