首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >simplecov的最小值

simplecov的最小值
EN

Stack Overflow用户
提问于 2013-03-25 05:43:42
回答 1查看 3.5K关注 0票数 2

我正在尝试测试最小的文件,如下所示:

代码语言:javascript
复制
COVERAGE=true ruby -Itest test/views/info_pages_test.rb
COVERAGE=true ruby -Itest test/views/errors_test.rb

现在我的info_pages_test覆盖了97%,我的errors_test覆盖了75%。它们加起来应该可以覆盖100%。但每次我运行上述命令时,我都会得到一个或另一个75%或97%的结果。有没有办法将两个测试文件的结果合并到一个覆盖率报告中?

如果您能帮忙,我们将不胜感激!

下面是我的minitest_helper.rb文件的顶部

代码语言:javascript
复制
## SimpleCOV

require 'simplecov'

if ENV["COVERAGE"]

  SimpleCov.start('rails') do

    add_filter "/test/"

  end
  puts "Started SimpleCOV"
end

我在应用程序根目录中也有一个.simplecov文件,但是使用它会产生不可预知的结果。我偶尔会得到100%的覆盖率,这是不可预测的..

.simplecov文件

代码语言:javascript
复制
SimpleCov.use_merging true
SimpleCov.merge_timeout 3600
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-25 22:18:30

您遇到的问题是,由于套件名称(可通过SimpleCov.command_name 'xyz'配置),而不是合并(例如cucumber和rspec结果),这些“测试套件”中的每一个都将相互覆盖。

首选的解决方案:通过一次运行整个测试套件来生成覆盖报告,使用rake test或其他类似的工具。

如果您坚持运行单独的测试文件,您可以通过提供伪随机命令名(如SimpleCov.command_name "MiniTest #{Time.now}" )或(取决于您的设置)使用ARGV (即SimpleCov.command_name "Minitest #{File.basename(ARGV[1])}" )来欺骗SimpleCov合并这些结果,而不是覆盖它们。后者的优点是不会在重新运行相同的测试文件时复制结果,因为这些结果将在合并时被覆盖,但当您运行所有测试并且没有正确检查ARGV的存在时,可能会失败,或者在您可以获取ARGV之前,您的测试框架篡改了ARGV。

尽管您可以在单独的测试运行中使用此功能,但一般来说,我建议仅基于完整测试套件运行的覆盖率报告,因为其他方法会留下错误的空间。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15604390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档