我有一个要求,到目前为止我需要获得报道。 如果我停止服务器,报告就会生成,到目前为止我确实得到了报道。但是,如果我再次启动服务器,我之前的覆盖结果将丢失,我只能在服务器重新启动后获得覆盖。
我是否有办法定期检查覆盖率% - 而不停止服务器?
如果我尝试在不启动服务器的情况下生成报告,请使用以下命令,在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'])
答案 0 :(得分:0)
此处记录了SimpleCov
正常工作的先决条件:SimpleCov
入门。在 Rails加载代码之后,您必须在SimpleCov
文件中包含boot.rb
相关代码。这是错的。将所有代码提升到顶部,SimpleCov.result.format!
方法将在控制台内工作。
但是,在boot.rb
中添加任何额外代码通常是个坏主意。通常,仅在测试环境中需要覆盖率报告(当提交代码并且像Travis这样的持续集成服务器运行完整的测试套件并生成覆盖率报告时)。因此,文档引用了这种设置样式,其中与SimpleCov相关的所有内容都在test
环境中运行。 Getting Started
部分中的第一个主题提到您需要在SimpleCov.start
文件的开头test_helper
行(spec_helper.rb
,如果您使用的是Rspec),那么是加载Rails环境的文件;这意味着您在加载实际应用程序代码之前最终加载SimpleCov及其配置,并获得正确的输出。
答案 1 :(得分:0)
require 'simplecov'
SimpleCov.start do
coverage_dir "custom-coverage_"+Time.now.strftime("%m_%d_%Y").to_s
end