ruby on rails - كيفية تشغيل اختبار واحد في الحرس ل rspec؟




ruby-on-rails guard (2)

أستخدم guard-rspec لتشغيل اختبارات rspec اللازمة تلقائيًا مع تغير ملفاتي ، وأنا أحب الطريقة التي يعمل بها. ومع ذلك ، عندما أقوم بتصحيح أحد الملفات باستخدام اختبارات متعددة ، فأريد أحيانًا إعادة تشغيل اختبار فردي. على سبيل المثال ، مع rspec من سطر الأوامر:

rspec spec/requests/my_favorite_spec.rb:100

سيتم تشغيل المواصفات الفردية فقط في السطر 100 في my_favorite_spec.rb .

حاولت إدخال ما ورد أعلاه في وحدة التحكم في الحراسة ، لكن الأمر أدى إلى تشغيل جميع الاختبارات كما لو كنت قد ضغطت للتو. هل هناك بناء جملة آخر في وحدة التحكم في الحماية لتشغيل مواصفات واحدة؟


أعتقد أنه يمكنك إضافة خيار "focus: true" للمواصفات التي تريد تشغيلها ، مثل هذا

it 'does something', focus: true do
  //your spec
end

ثم يمكنك حفظ الملف ويدير الحرس فقط هذا الاختبار المركزة

عند الانتهاء ، يمكنك فقط إزالة "التركيز: صواب"


يجب عليك spec/spec_helper.rb ملف spec/spec_helper.rb الخاص بك spec/spec_helper.rb :focus => true .

RSpec.configure do |config|
  config.filter_run :focus => true
end

ثم يمكنك استخدامها

it 'does something', :focus => true do
  //your spec
end

أو

describe "something", :focus => true do
  before do
     sign in
     visit page
  end

  it { does something }
  it { does something else }
end

إذا كنت ستتبع هذا النهج ، فربما تحتاج أيضًا إلى التأكد من تشغيل جميع المواصفات إذا لم يكن هناك :focus => true أي مكان ، باستخدام الطريقة الموثقة :

RSpec.configure do |config|
  config.run_all_when_everything_filtered = true
end

يمكنك أن تفعل الكثير مع المرشحات. قد ترغب في إلقاء نظرة على هذه الصفحة: https://relishapp.com/rspec/rspec-core/v/3-0/docs/filtering





guard