Si escribe pruebas para su proyecto y usa
factory_bot para generar datos de prueba, le presento la gema
factory_trace , que lo ayudará a mantener sus fábricas y rasgos actualizados.
Que hace
Durante el lanzamiento de sus pruebas, la gema monitorea el uso de ciertas fábricas, y al final de la ejecución muestra un informe de resultados.
$ 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
Integracion de proyectos
Para RSpec, es suficiente instalar la gema y puede usarla, para cualquier otro probador, es suficiente para hacer manipulaciones simples:
Ejecución paralela / pieza
A menudo, si las pruebas tardan mucho tiempo, se ejecutan en diferentes procesos en partes, y para que los datos de las fábricas no utilizadas sean correctos, es necesario procesar estadísticas de todas las pruebas.
Esto se puede hacer de la siguiente manera:
Como funciona
Gracias a la implementación de
ActiveSupports::Notifications
usando
ActiveSupports::Notifications
es fácil agregar una devolución de llamada cuando se usa la fábrica:
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
Y después de recopilar toda la información, encontramos fábricas no utilizadas con un algoritmo simple.
post scriptum
Pruébelo usted mismo y comparta sus comentarios, ¡se lo agradeceré!
Gracias por su atencion