Se você escrever testes para o seu projeto e usar o
factory_bot para gerar dados de teste, apresento a jóia
factory_trace , que ajudará você a manter suas fábricas e características atualizadas.
O que isso faz?
Durante o lançamento de seus testes, a gema monitora o uso de certas fábricas e, no final da execução, exibe um relatório 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
Integração de Projetos
Para o RSpec, basta instalar o gem e você pode usá-lo, para qualquer outro testador, basta fazer manipulações simples:
Execução paralela / peça
Frequentemente, se os testes demoram muito tempo, eles são executados em diferentes processos em partes e, para que os dados das fábricas não utilizadas estejam corretos, é necessário processar estatísticas de todos os testes.
Isso pode ser feito da seguinte maneira:
Como isso funciona?
Graças à implementação do
factory_bot usando o
ActiveSupports::Notifications
é fácil adicionar um retorno de chamada quando a fábrica é usada:
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
E depois de coletar todas as informações, encontramos fábricas não utilizadas com um algoritmo simples.
post scriptum
Tente você mesmo e compartilhe seu feedback, serei grato!
Obrigado pela atenção.