جوهرة cov البسيطة تفتقد الملفات غير المختبرة في Rails
-
23-12-2019 - |
سؤال
استخدام simple_cov
جوهرة في تطبيق Rails، هل يمكننا تضمين الملفات التي لم نختبرها في التقرير؟
إذا كانت الإجابة بنعم، كيف؟
إذا كانت الإجابة لا، فيجب أن يتم احتساب تلك الملفات ضمن نسبة التغطية، أليس كذلك؟
المحلول
حاول تعديل ملفك config/environments/test.rb
وتعيين هذا السطر:
config.eager_load = false
ل true
وبهذه الطريقة يتم تحميل التطبيق بالكامل ويقرأه Simplecov.
نصائح أخرى
قم بتحميل تطبيق Rails بالكامل بحرص عند تشغيل مجموعة الاختبارات مع تغطية التعليمات البرمجية.يضيف Rails.application.eager_load!
ل spec_helper.rb
.
يعمل Simplecov على إبطاء الاختبارات ولهذا السبب أستخدم متغير بيئة Shell لتشغيله.عادة بلدي spec_helper.rb
/rails_helper.rb
يبدو مثل هذا:
if ENV['COVERAGE']
require 'simplecov'
# some SimpleCov setup, e.g. formatters
SimpleCov.start 'rails'
end
ENV['RAILS_ENV'] ||= 'test'
require 'spec_helper'
require File.expand_path('../../config/environment', __FILE__)
require 'rspec/rails'
Rails.application.eager_load! if ENV['COVERAGE']
منذ الإصدار 0.11.0، يمكن تعيين الملفات التي يجب تتبعها بشكل صريح (طلب سحب).
بالنسبة لتطبيق Rails سيكون:
require 'simplecov'
SimpleCov.start do
track_files '{app,lib}/**/*.rb'
end
أو الاستخدام البسيط:
require 'simplecov'
SimpleCov.start 'rails'
وسيتم تعيين الملفات التي سيتم تعقبها بشكل افتراضي (الكود ذو الصلة الحالي).