Si vous écrivez des tests pour votre projet et utilisez
factory_bot pour générer des données de test, je vous présente le joyau
factory_trace , qui vous aidera à maintenir vos usines et vos caractéristiques à jour.
Que fait-il?
Lors du lancement de vos tests, la gemme surveille l'utilisation de certaines usines, et à la fin de l'exécution, elle affiche un rapport de résultat.
$ 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
Intégration de projet
Pour RSpec, il suffit d'installer la gemme et vous pouvez l'utiliser, pour tout autre testeur, il suffit de faire des manipulations simples:
Exécution parallèle / pièce
Souvent, si les tests prennent du temps, ils sont exécutés dans différents processus en plusieurs parties, et pour que les données sur les usines inutilisées soient correctes, il est nécessaire de traiter les statistiques de tous les tests.
Cela peut être fait comme suit:
Comment ça marche?
Grâce à l'implémentation de
factory_bot à l' aide d'
ActiveSupports::Notifications
il est facile d'ajouter un rappel lorsque la fabrique est utilisée:
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
Et après avoir collecté toutes les informations, nous trouvons des usines inutilisées avec un algorithme simple.
post scriptum
Essayez-le et partagez vos commentaires, je vous en serai reconnaissant!
Merci de votre attention.