将 Capybara 升级到最新版本导致 Gitlab CI 失败
Posted
技术标签:
【中文标题】将 Capybara 升级到最新版本导致 Gitlab CI 失败【英文标题】:Upgrading Capybara to latest version makes Gitlab CI fail 【发布时间】:2019-09-21 04:38:27 【问题描述】:我正在将我的 Capybara 升级到最新版本(从 2.18.0 开始)这会导致运行我的测试时出现很多 normalized_whitespace
弃用运行。我读到拉 gem 的 master 分支解决了这个问题,它确实有效,但现在我在 Gitlab 上的 CI 失败了:
Errno::ENOENT: No such file or directory - /builds/products/micheticket/vendor/ruby/2.5.0/bundler/gems/capybara-webkit-77fdac424cd6/bin/webkit_server
有没有人知道如何解决这个问题?
【问题讨论】:
【参考方案1】:注意Capybara
和capybara-webkit
是两个不同的东西,Capybara
是测试框架,capybara-webkit
是您可以配置为与Capybara
一起使用的驱动程序。由于capybara-webkit
包含一个C 部分,它需要在安装它的平台上编译,这意味着它的所有依赖项(QtWebkit 的特定版本等)都可以在平台上使用。由于 QtWebKit 很久以前就停止了开发,因此默认情况下提供这些功能已变得很少见。 capybara-webkit
开发也已停止,该项目可能很快就会存档。如果您切换到使用 selenium 驱动程序(无头 Chrome 或 Firefox)或通过 CDP 驱动程序(如 Apparition 目前处于测试阶段但旨在提供capybara-webkit 在 selenium 上的额外功能。
【讨论】:
我说是从 2.18.0 开始更新的。 从我在他们的 Github 上看到的capybara-webkit
似乎有一个 2.0.0 版本的计划。我确实尝试切换到 Selenium 和 webdrivers
gem,但遇到了其他问题。
@8vius 看看关于 2.0.0 的讨论的日期——它停滞不前,不会发生。 QtWebkit 开发的结束基本上结束了 capybara-webkit 项目(就像它对 Poltergeist/PhantomJS 所做的那样) - 我是 capybara-webkit
项目的提交者,几周前在电子邮件中谈到它很快就会被归档。跨度>
是的,你是对的。我遇到的 selenium 和 webdrivers gem 的问题是该项目允许一些真正的连接,我不确定如何像 Capybara-webkit 那样设置它们
@8vius 这就是我链接到幻影驱动程序的原因。这支持像 capybara-webkit 那样将 url 列入黑名单。【参考方案2】:
我使用 gem 来管理和安装驱动程序。 Webkit 已弃用。我会使用 chrome 驱动程序。
gem 'chromedriver-helper'
【讨论】:
chromedriver-helper 也已弃用。你很快就会想换成webdrivers
来管理你的chromedriver
安装。以上是关于将 Capybara 升级到最新版本导致 Gitlab CI 失败的主要内容,如果未能解决你的问题,请参考以下文章