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

标签 grails selenium functional-testing geb

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

  • 盖布:0.9.2
  • Selenium :2.26.0
  • chalice :2.1
  • 斯波克:0.7

  • 我正在一个带有以下内容的 linux 机器上运行:
  • 火狐:14
  • Centos:5.3

  • 我有一个 grails 应用程序,我在功能测试阶段使用 Geb。

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

    但是,功能测试的后续运行所有测试都将失败:
    geb.giver.DriverCreationException
    

    这显然是由以下原因引起的:
    java.lang.NoSuchMethodException
    

    现在,如果我丢弃我的 .grails 并再次运行,下次通过就好了。只是希望能够始终如一地运行测试。

    任何帮助将不胜感激!

    干杯

    更新:

    以下是堆栈跟踪的要点(手工复制,如有任何错别字深表歉意):
    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)
        ...
    

    最佳答案

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

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

    关于Grails GEB 测试在后续运行中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21136740/

    相关文章:

    grails - Grails-构建配置错误

    python - 如何使用 selenium 和 PhantomJS 在 python 中打开新选项卡

    node.js - 无论我做什么,Selenium 都不会在 headless 模式下启动 chrome

    java - 如何将我的测试结果从 selenium 发送到 testrail

    ios - 迪尔德 : Library not loaded for EarlGrey installation

    Grails 多个 g :if test for more than one condition

    web-applications - 使用Grails读取PDF文件

    grails - grails spring安全ui密码验证器

    iphone - 如何在 xcode4 的界面生成器中设置 View 的辅助功能标签?

    ruby-on-rails - assert_no_template