gpt4 book ai didi

ruby - 使用 Capybara 和 headless Chrome 运行功能测试时出现 EOFError

转载 作者:数据小太阳 更新时间:2023-10-29 07:14:59 27 4
gpt4 key购买 nike

<分区>

编辑:事实证明,这整个问题是由于我们的 WEBrick 项目中隐藏且命名不当的猴子补丁造成的,Capybara 将其用作其默认 Web 服务器。 StackOverflow 不允许我删除问题,因此在进一步阅读时要小心。

我们正在尝试将我们的 Ruby 版本从 2.2.7 升级到 2.4.3。该应用程序本身运行良好,但我们通过 Capybara 和 headless Chrome(使用 Chromedriver)运行的所有功能测试突然失败。

这是我们看到的确切错误的示例:

Failures:

1) New UI - Settings Page - API with an unpermitted tier clicking on the "Request API Key" button shows a feature popup
Got 0 failures and 2 other errors:

1.1) Failure/Error: Unable to find matching line from backtrace

EOFError:
end of file reached

1.2) Failure/Error: Unable to find matching line from backtrace

EOFError:
end of file reached

下面是我们如何为 headless Chrome 配置 Selenium 驱动程序:

CHROME_BINARY = ENV.fetch('CHROME_BINARY', '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome')

Capybara.register_driver :headless_chrome do |app|
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
desired_capabilities: Selenium::WebDriver::Remote::Capabilities.chrome(
'chromeOptions' => {
'binary' => CHROME_BINARY,
'args' => %w(no-sandbox disable-gpu window-size=1440,900 headless)
}
)
)
end

ruby 版本:2.4.3

Chrome 驱动程序版本:2.35.528157

capybara 版本:2.18.0

RSpec 版本:3.7.0

Selenium 网络驱动程序:3.9.0

Chrome :64.0.3282.167

我所做的所有其他研究表明,将 Chromedriver 更新到最新版本将解决此问题,但我们已经在使用最新版本 (2.3.5)。

我一直没能找到一种方法来获取上述错误的更多回溯。该规范甚至没有达到从数据库加载任何内容的程度,它只是立即失败。

另一件需要注意的事情:我们的 CI 服务器和本地开发机器上都发生了同样的行为。我们将 CircleCI 与 Dockerized Linux 容器一起使用,并将 MacOS Sierra/High Sierra 用于我们的开发机器。

我们没有使用 chromedriver-helper 或任何其他自动安装 chromedriver 的 gem。 chromedriver 的安装是通过 brew install chromedriver 或从 chromedriver 网站下载最新的 chromedriver 并放置在我们的 $PATH 中完成的。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com