جوهرة factory_trace تساعد في تنظيف المصانع الخاصة بك

إذا قمت بكتابة اختبارات لمشروعك واستخدمت factory_bot لإنشاء بيانات الاختبار ، أقدم إليكم جوهرة factory_trace ، والتي ستساعدك في تحديث المصانع والسمات الخاصة بك.

ماذا تفعل؟


أثناء إطلاق الاختبارات الخاصة بك ، تراقب الأحجار الكريمة استخدام بعض المصانع ، وفي نهاية التنفيذ تعرض تقريرًا عن النتائج.

$ FB_TRACE=1 rspec total number of unique used factories & traits: 3 total number of unique unused factories & traits: 2 unused global trait with_email unused factory admin 

تكامل المشروع


بالنسبة إلى RSpec ، يكفي تثبيت الأحجار الكريمة ويمكنك استخدامه ، لأي اختبار آخر ، يكفي القيام بمعالجات بسيطة:

 #      FactoryTrace.start #     FactoryTrace.stop 

بالتوازي / تنفيذ قطعة


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

يمكن القيام بذلك على النحو التالي:

 #   FB_TRACE=trace_only FB_TRACE_FILE=fb_trace_result1.txt bundle exec rspec spec/first_spec.rb #   (    ) FB_TRACE=trace_only FB_TRACE_FILE=fb_trace_result2.txt bundle exec rspec spec/second_spec.rb #     bundle exec factory_trace fb_trace_result1.txt fb_trace_result2.txt 

كيف يعمل؟


بفضل تطبيق factory_bot باستخدام ActiveSupports::Notifications من السهل إضافة رد اتصال عند استخدام المصنع:

 ActiveSupport::Notifications.subscribe('factory_bot.run_factory') do |_name, _start, _finish, _id, payload| name = payload[:name] traits = payload[:traits] storage[name] ||= Set.new storage[name] |= traits end 

وبعد جمع كل المعلومات ، نجد المصانع غير المستخدمة مع خوارزمية بسيطة.

آخر النص


جرب ذلك بنفسك وشارك بتعليقاتك ، سأكون ممتنًا!

شكرا لاهتمامكم

Source: https://habr.com/ru/post/ar450758/


All Articles