2012-10-23 9 views
8

Właśnie buduję pakiet testowy dla starszej aplikacji Rails. Klejnot simplecov doskonale nadaje się do wyszukiwania ciemnych zakątków aplikacji, które wymagają pokrycia testowego (lub które mogą być całkowicie nieużywane i możliwe do usunięcia). Jestem powołując simplecov po prostu w tym następujące u góry test/test_helper.rb:Jak przetestować pokrycie kodu dla szablonów ERB Rails?

require 'simplecov' 
SimpleCov.start('rails') 

Problemem jest to, że nie sprawdza cały kod, który jest osadzony w szablonach. Są tam różne rodzaje śmieci i jestem pewna, że ​​wiele z nich można po prostu usunąć, ale byłoby naprawdę miło, gdyby narzędzie do kodowania mogło wskazać mi nieużywane bity.

Niektóre eksperymentowanie z Ruby 1.9 za Coverage biblioteki prowadzi mnie do przypuszczenia, że ​​może to zrobić tylko wtedy, gdy zadanie szablony były jakoś skompilowane do kodu Ruby, zapisanych w plikach źródłowych Ruby, a następnie load ed lub require d, zamiast ładowania skompilowanych szablonów bezpośrednio za pomocą eval. LUB, możliwe jest włamanie się do ERB w celu dodania instrukcji rejestrowania do każdego wiersza każdego szablonu podczas procesu kompilacji.

Czy ktoś ma jakieś inne pomysły, jak zmierzyć pokrycie kodu szablonów ERB? Czy znasz już gotowe narzędzie, które może to zrobić? (Albo będę musiał być jeden zbudować i zwolnij go?) Statystyki

Odpowiedz

8

Patrz: How do I get coverage for view specs with rspec, rails, and simplecov?

odpowiedź istotą, nie można:

https://github.com/colszowka/simplecov/issues/38

To krytyczny błąd, który mam nadzieję, że ktoś się zająć. AFIK nie ma nic lepszego niż simplecov dla Ruby 1.9

+1

OK. Dzięki. Przyjmuję tę odpowiedź ... ale myślę, że może będę musiał sam rozwiązać to zagadnienie, a jeśli to zrobię, stanie się to zaakceptowaną odpowiedzią. –

-2

try grabie

byłoby wygenerować tabelę mającą zasięg każdej z części aplikacji

+0

Próbowałem tego. To nie działa. –

+0

Jaka jest twoja wersja Railsów.it działa idealnie dobrze na Railsach 3.2.3 ... spróbuj uruchomić rake-T i przeczytaj opisy zadań wymienionych w nim ... –

+1

Nie chcę wiedzieć * jak wiele * linii kodu znajduje się w moich szablonach. Chcę wiedzieć, ile z tych linii * zostało wykonanych przez mój pakiet testowy *. Przeczytaj uważnie to pytanie. –

Powiązane problemy