Sto solo creando una suite di test per un'app Rails legacy. La gemma simplecov
è stata fantastica per trovare angoli bui dell'app che necessitano di copertura di test (o che potrebbero essere completamente inutilizzati e OK da rimuovere). Sto invocando simplecov
semplicemente inserendo il seguente nella parte superiore del test/test_helper.rb
:Come testare la copertura del codice per i modelli di ERB di Rails?
require 'simplecov'
SimpleCov.start('rails')
Il problema è che questo non controlla tutto il codice che è incorporato nei modelli. Ci sono tutti i tipi di cianfrusaglie, e sono sicuro che molte potrebbero essere rimosse, ma sarebbe davvero bello se uno strumento di copertura del codice potesse indirizzarmi ai bit inutilizzati.
Alcuni esperimenti con la libreria Ruby 1.9 di Coverage
mi porta a credere che potrebbe solo fare il lavoro se i modelli fossero in qualche modo pre-compilate in codice Ruby, salvati in file di origine di Ruby, e poi load
ed o require
d, piuttosto che caricare i modelli compilati direttamente con eval
. O, potrebbe essere possibile hackerare ERB per aggiungere istruzioni di registrazione a ciascuna riga di ogni modello durante il processo di compilazione.
Qualcuno ha altre idee su come misurare la copertura del codice dei modelli ERB? Conosci uno strumento già creato che può farlo? (O dovrò essere quello di costruire e rilasciarlo?)
OK. Grazie. Accetterei questa risposta ... ma poi penso che potrei semplicemente creare una soluzione a questo problema da solo, e se lo farò, diventerà la risposta accettata. –