Тесты Grails GEB завершаются со сбоем при последующих запусках

Мое приложение использует следующие версии:

  • Версия: 0.9.2
  • Селен: 2.26.0
  • Грааль: 2.1
  • Спок: 0,7

И я работаю на Linux-боксе со следующим:

  • Фаерфокс: 14
  • Центос: 5.3

У меня есть приложение Grails, и я использую Geb на этапе функционального тестирования.

Если я начинаю с чистой среды (.grails был стерт) и запускаю свои тесты, все они проходят нормально, geb запускает firefox, выполняет тесты и дает мне отчет.

Однако при последующих запусках функциональных тестов все тесты завершатся с ошибкой:

geb.giver.DriverCreationException

что, по-видимому, вызвано:

java.lang.NoSuchMethodException

Теперь, если я выброшу свой .grail и снова запущу, в следующий раз все пройдет нормально. Просто хочу иметь возможность последовательно запускать тесты.

Любая помощь будет принята с благодарностью!

Ваше здоровье

ОБНОВЛЕНИЕ:

Ниже приведена суть трассировки стека (скопирована вручную, поэтому приносим извинения за любые опечатки):

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)
    ...

person DJOodle    schedule 15.01.2014    source источник
comment
Не могли бы вы вставить трассировку стека?   -  person erdi    schedule 15.01.2014
comment
@erdi К сожалению, я не могу получить доступ к Интернету или скопировать из среды разработки. Однако я скопировал вручную первые несколько строк трассировки стека и поместил их в редактирование выше. Ваше здоровье   -  person DJOodle    schedule 16.01.2014


Ответы (1)


У меня была именно эта проблема в прошлом. Именно с классами HttpDriver в трассировке стека и происходит при втором запуске после очистки. Это связано с тем, что некоторые из ваших подключаемых модулей Grails используют конфликтующую версию HttpClient.

Я обнаружил, что обычно это плагин, который транзитивно извлекает плагин релиза, но не исключает его из экспорта. Чтобы найти виновника, нужно просмотреть все установленные плагины для этого приложения в каталоге .grails и просмотреть их зависимости, чтобы найти тот, который загружает плагин выпуска, а затем либо удалить его, либо обновить до более нового. версия, так как все больше и больше авторов плагинов исключают выпуск плагина из экспорта, и я также считаю, что последние версии выпуска плагина больше не зависят от HttpBuilder.

person erdi    schedule 16.01.2014
comment
Ты, мой добрый человек, гений. Ржать, ты Бог среди нас простых смертных. Я пытался убедить команду поддержать тестирование Geb, и мне приходилось выбрасывать мои .grails перед каждым запуском, что делало его трудной продажей. Но действительно один из плагинов, разработанных коллегой, забыл экспортировать = false при выпуске плагина. Удалим это, и мы готовы идти. :) - person DJOodle; 17.01.2014
comment
Рад слышать, что вы, ребята, продолжаете использовать Geb! - person erdi; 17.01.2014