加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 带有Selenium / Rails的SimpleCov

发布时间:2020-12-17 02:31:41 所属栏目:百科 来源:网络整理
导读:我们有一套Selenium测试.我想使用SimpleCov来覆盖这些测试的服务器端覆盖.首先,这是一种常见的方法吗?我无法在SimpleCov / Selenium上找到任何东西.也许SimpleCov通常用于单元/功能测试而不是集成? 目前的Selenium设置需要启动一个rails服务器,而不是让一
我们有一套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,点击并退出服务器来获取本地基于浏览器的手动测试的代码覆盖率,例如,如果您想知道应用程序的哪个部分是某个操作真的很感动.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读