我有一个要求,我需要在到目前为止获得覆盖范围。如果我停止服务器,则报告将生成,并且到目前为止我确实得到了覆盖范围。但是,如果我再次启动服务器,我以前的覆盖范围结果将丢失,并且只能在服务器重新启动后获得覆盖范围。
我有没有办法继续定期检查覆盖范围% - 而无需停止服务器?
如果我尝试在不启动服务器的情况下生成报告,则使用以下命令,在Rails Console(SimpleCov.Result.Format!),我没有任何包含的编号。
以下是我的config/boot.rb中的配置:
require 'simplecov'
SimpleCov.start 'rails' do
add_filter "/vendor/"
end
请分享您的想法谢谢ramya
这是我的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'])
SimpleCov
正常工作的前提条件在此处记录:开始使用SimpleCov
。在之后,您必须在 boot.rb
file 中使用SimpleCov
相关的代码。这是错误的。将所有代码推广到顶部,SimpleCov.result.format!
方法将在控制台内部工作。
但是,在boot.rb
中拥有任何额外的代码通常是一个坏主意。通常,只有在测试环境中需要覆盖报告(当代码合作并且像Travis这样的连续集成服务器运行完整的测试套件并生成覆盖范围报告时)。因此,文档是指与SimpleCov在test
环境中运行的所有内容。Getting Started
节中的第一个主题提到您需要在test_helper
文件的开头(如果使用RSPEC)将SimpleCov.start
行(spec_helper.rb
)的开始,因为那是加载导轨环境的文件;这意味着您最终加载了SimpleCov,并且在加载实际的应用程序代码之前进行了配置,并且您将获得正确的输出。
require 'simplecov'
SimpleCov.start do
coverage_dir "custom-coverage_"+Time.now.strftime("%m_%d_%Y").to_s
end