将 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】:

注意Capybaracapybara-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 失败的主要内容,如果未能解决你的问题,请参考以下文章

Nginx平滑升级到最新版本

如何将 Typescript 升级到最新版本?

mac下nodejs 更新到最新版本的最新方法

升级到 Capybara 2.0 后如何点击项目列表中的第一个链接?

centos 中如何将python更新到最新的版本

如何将 Angular CLI 升级到最新版本