gpt4 book ai didi

ruby-on-rails - SimpleCov 与 Selenium/Rails

转载 作者:行者123 更新时间:2023-12-03 07:34:14 25 4
gpt4 key购买 nike

我们有一套 Selenium 测试。我想使用 SimpleCov 来覆盖这些测试的服务器端覆盖范围。首先,这是一种常见的方法吗?我在 SimpleCov/Selenium 上找不到任何内容。也许 SimpleCov 通常用于单元/功能测试而不是集成?

当前的 Selenium 设置需要启动 Rails 服务器,而不是让一套 Selenium 测试命中它。我需要 SimpleCov 在 rails 服务器上运行,然后在套件完成后退出。

非常感谢任何帮助!

最佳答案

simplecov 作者在这里。每当您启动 SimpleCov 时,它都会将覆盖率分析应用于当前正在运行的进程。因此,您需要在 Rails 服务器进程中启动 SimpleCov。我建议将 SimpleCov 设置作为条件添加到 Rails 应用程序的 config/boot.rb(在最顶部),如下所示:

# config/boot.rb
if ENV["SELENIUM"]
require 'simplecov'
SimpleCov.start 'rails'
end

在启动 Rails 测试服务器之前,设置该环境变量。一旦测试服务器关闭,您现在应该会收到一份覆盖率报告。如果您想将其移动到另一个目录,请查看配置选项,以免干扰您的常规(单元/功能)覆盖率报告。

我不确定 boot.rb 是不是正确的地方。事实上,SimpleCov 需要在您的应用程序中的任何其他内容被需要之前加载,否则它将无法跟踪这些文件的覆盖范围。您可能需要进行试验或查看 rails 启动过程以找到该位置,但由于 Bundler 设置是 boot.rb 的一部分(如果我没记错的话...),将上述配置放在 Bundler.setup 之上应该没事的。

基本上,通过类似的设置,您甚至可以通过在服务器进程中启动 simplecov、单击并退出服务器来获得本地手动基于浏览器的测试的代码覆盖率,例如,如果您想知道应用程序的哪个部分执行某个操作真的很感动。

关于ruby-on-rails - SimpleCov 与 Selenium/Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10116761/

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