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

ruby-on-rails – Ruby on Rails使用simplecov测试覆盖率

发布时间:2020-12-16 19:06:26 所属栏目:百科 来源:网络整理
导读:我想分析代码的测试覆盖率,因此,安装了simplecov gem. 我们的测试环境有两个单独的项目:REST API测试(Java Rest-Assured)和Web UI测试(Java-Selenium). 如您所见,我们在rails应用程序内部没有单元测试,我们正在使用外部项目进行测试. 我配置了教程中描述的s
我想分析代码的测试覆盖率,因此,安装了simplecov gem.

我们的测试环境有两个单独的项目:REST API测试(Java Rest-Assured)和Web UI测试(Java-Selenium).
如您所见,我们在rails应用程序内部没有单元测试,我们正在使用外部项目进行测试.

我配置了教程中描述的simplecov gem并将其放在rails脚本中:

require 'simplecov'
SimpleCov.start 'rails'
puts "require simplecov"

加载应用程序时,我看到我打印的字符串.

我运行了两个自动化测试项目,在rails日志中看到了他们的打印输出,但我没有看到任何控制器/模型的覆盖,我看到一些宝石和rails的初始化文件的小百分比.

我搜索网络,并尝试将代码短语放在boot.rb甚至puma.rb中,它返回相同的结果.

有任何想法吗?

编辑

没有任何帮助所有的评论,但我想出了一些非常有趣的东西,在所有情况下,我只看到标记为测试的方法的名称,而不是内容(在控制器中).
我试图将simplecov启动短语放在bin / rails,puma.rb,config.ru,environment.rb中,所有这些都没有给出所需的代码覆盖率结果.

解决方法

我不确定simplecov可以测量整个rails应用程序的覆盖范围……但我搜索了一些你可以作为机架中间件附加的内容:

https://github.com/danmayer/coverband

它的输出与simplecov兼容.所以看起来它可能对你的情况有用.

正如你在问题中提到的,你正在使用美洲狮.我怀疑,因为它是多线程的,它会产生一些rails应用程序,它们的simplecov输出会覆盖彼此的结果.我尝试使用像webrick这样的单线程服务器 – 但这可能会使你的测试速度变慢(取决于测试是如何被激发的)或尝试使用coverband gem.

另外 – 即使服务器是单线程的 – 我也不确定每个请求是否都不会覆盖simplecov的输出.

(编辑:李大同)

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

    推荐文章
      热点阅读