Yog*_*Abr 10 ruby automated-tests ruby-on-rails simplecov
我想分析代码的测试覆盖率,因此,安装了simplecov gem.
我们的测试环境有两个单独的项目:REST API测试(Java + Rest-Assured)和Web UI测试(Java-Selenium).
如您所见,我们在rails app中没有单元测试,我们正在使用外部项目进行测试.
我按照教程中的描述配置了simplecov gem,并将其放在rails脚本中:
require 'simplecov'
SimpleCov.start 'rails'
puts "require simplecov"
Run Code Online (Sandbox Code Playgroud)
加载应用程序时,我看到我打印的字符串.
我运行了两个自动化测试项目,在rails日志中看到了他们的打印输出,但是我没有看到控制器/模型的任何覆盖,我看到一些gems和rails的初始化文件的小百分比.
我搜索网络,并尝试将代码短语放在boot.rb甚至puma.rb中,它返回相同的结果.
有任何想法吗?
编辑
没有任何帮助所有的评论,但我想出了一些非常有趣的东西,在所有情况下,我只看到标记为测试的方法的名称,而不是内容(在控制器中).
我试图将simplecov启动短语放在bin/rails,puma.rb,config.ru,environment.rb中,所有这些都没有给出所需的代码覆盖率结果.
我不确定 simplecov 可以测量整个 Rails 应用程序覆盖范围...但我在 google 上搜索了一些可以作为机架中间件附加的东西:
https://github.com/danmayer/coverband
它的输出与 simplecov 兼容。所以看起来它对你的情况很有用。
正如您在问题中提到的,您正在使用 puma。我怀疑,由于它是多线程的,它会生成一些 Rails 应用程序,并且它们的 simplecov 输出会覆盖彼此的结果。我会尝试使用像 webrick 这样的单线程服务器 - 但这可能会使您的测试变慢(取决于测试的实际启动方式)或尝试 gem coverband。
另外 - 即使服务器是单线程的 - 我不确定每个请求是否不会覆盖 的simplecov输出。
| 归档时间: |
|
| 查看次数: |
835 次 |
| 最近记录: |