2014-01-15 30 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

相關問題