我有一个要求,在那里,我需要到目前为止的覆盖范围。如果我停止服务器,就会生成报告,并且到目前为止我确实得到了覆盖范围。但是如果我再次启动服务器,我之前的覆盖结果将丢失,并且我只能在服务器重新启动后才能获得覆盖。
有没有办法让我在不停止服务器的情况下定期检查覆盖率?
如果我试图在不启动服务器的情况下生成报告,在rails控制台(SimpleCov.result.format!)中使用以下命令,我得不到任何覆盖率数字。
以下是我在config /boot.rb中的配置:
require 'simplecov'
SimpleCov.start 'rails' do
add_filter "/vendor/"
end请分享你的想法,谢谢拉米亚
这是我的boot.rb的内容:
require 'simplecov'
# # create coverage directory if it doesn't exist already.
Dir.mkdir("coverage") unless Dir.exist?("coverage")
SimpleCov.start 'rails' do
SimpleCov.use_merging(true)
add_filter "/vendor/"
SimpleCov.merge_timeout 30
end
require 'rubygems'
# Set up gems listed in the Gemfile.
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])发布于 2014-02-06 16:10:32
这里记录了SimpleCov正常工作的前提条件:SimpleCov入门。在Rails加载代码之后,您必须在boot.rb文件中包含与SimpleCov相关的代码。这是错误的。将所有代码提升到顶层,SimpleCov.result.format!方法将在控制台中工作。
但是,在boot.rb中包含任何额外的代码通常不是一个好主意。通常,只有在测试环境中才需要覆盖率报告(当代码提交并且像Travis这样的持续集成服务器运行完整的测试套件并生成覆盖率报告时)。因此,文档指的是这种设置风格,其中与SimpleCov相关的所有内容都在test环境中运行。Getting Started部分中的第一个主题提到,您需要在test_helper文件(如果使用Rspec,则为spec_helper.rb)的开头包含SimpleCov.start行,因为它是加载Rails环境的文件;这意味着在加载实际的应用程序代码之前,您最终需要加载SimpleCov及其配置,并获得正确的输出。
发布于 2018-09-06 19:16:56
require 'simplecov'
SimpleCov.start do
coverage_dir "custom-coverage_"+Time.now.strftime("%m_%d_%Y").to_s
endhttps://stackoverflow.com/questions/21570626
复制相似问题