簡體   English   中英

SimpleCov ::定期覆蓋率報告

[英]SimpleCov :: Periodic Coverage Report

我有一個要求,我需要覆蓋到目前為止。 如果我停止服務器,則會生成報告,並且到目前為止,我的確獲得了覆蓋范圍。 但是,如果我再次啟動服務器,我以前的覆蓋范圍結果將丟失,並且只有在服務器重新啟動后才能獲得覆蓋范圍。

有沒有辦法讓我定期檢查覆蓋率%-而無需停止服務器?

如果我嘗試在不啟動服務器的情況下嘗試生成報告,則通過在Rails控制台(SimpleCov.result.format!)中使用以下命令,不會得到任何coverage編號。

以下是我在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'])

SimpleCov正常工作的前提條件在此處記錄: SimpleCov入門。 在Rails加載代碼之后 ,您必須在boot.rb文件中包含與SimpleCov相關的代碼。 錯了 將所有代碼提升到頂部和SimpleCov.result.format! 方法將在控制台內部工作。

但是,在boot.rb包含任何額外的代碼通常是一個壞主意。 通常,僅在測試環境中才需要覆蓋報告(當提交代碼並且像Travis這樣的連續集成服務器運行完整的測試套件並生成覆蓋報告時)。 因此,文檔涉及這種設置樣式,其中與SimpleCov相關的所有內容均在test環境中運行。 Getting Started部分的第一個主題提到,您需要在test_helper文件(如果使用spec_helper.rb話,為spec_helper.rb的開頭具有SimpleCov.start行,因為那是加載Rails環境的文件。 這意味着您最終將在加載實際的應用程序代碼之前加載SimpleCov及其配置,並獲得正確的輸出。

require 'simplecov'
SimpleCov.start do
    coverage_dir  "custom-coverage_"+Time.now.strftime("%m_%d_%Y").to_s
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM