جوهرة cov البسيطة تفتقد الملفات غير المختبرة في Rails

StackOverflow https://stackoverflow.com//questions/22075516

  •  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'

وسيتم تعيين الملفات التي سيتم تعقبها بشكل افتراضي (الكود ذو الصلة الحالي).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top