2013-06-25 21 views
6

Odziedziczyłem aplikację Rails 2.3, w której brakuje solidnego zestawu testów. Istnieje spora liczba testów, ale niestety wiele testów sprawdza się w stosunku do starych, nieużywanych modeli, kontrolerów i widoków.Jak znaleźć cały nieużywany kod w Ruby on Rails

Czy ktoś ma solidne wyobrażenie o tym, jak mogę przejść do testowania, które modele, kontrolery, widoki, pomocników, itp. Są całkowicie nieużywane, a także zajrzeć do tych, które są używane i zobaczyć, które funkcje specjalnie nie są używane ?

+0

Dokonuje się tego za pomocą narzędzia [Code Coverage] (https://en.wikipedia.org/wiki/Code_coverage). Inną kwestią do rozważenia jest oznaczanie starych obiektów/umów jako przestarzałe (ręcznie) w celu lepszej identyfikacji. – Paul

+0

Możliwy duplikat [Znajdź nieużywany kod w aplikacji Rails] (http://stackoverflow.com/questions/9735307/find-unused-code-in-a-rails-app) – oma

Odpowiedz

1

Można spojrzeć na tę odpowiedź, a być może niektóre inne odpowiedzi Wystawione: https://stackoverflow.com/a/9788511/485864

to pewnie w końcu zalogowaniu metod, które masz, i uruchomić kod po ścieżkach i nic nie wymienionych w log, może zostać sprawdzony, aby sprawdzić, czy rzeczywiście nie jest używany.

+0

Dziękuję, ta odpowiedź była bardzo pomocna. Będę używał kombinacji wymienionych tam metod. – professormeowingtons

1

RCov lub SimpleCov nie zrobi tego, czego chcesz?

+1

RCov wydaje się polegać na solidnym zestawie testów . Jednak zestaw testów w naszej aplikacji obejmuje niektóre z aplikacji, które są używane, ale obejmuje również niektóre metody/działania, które NIE są używane. – professormeowingtons

1

Możesz spróbować użyć RubyMine, Rails IDE, aby wyszukać nieużywany kod. Spróbuj wyszukać nazwy metod i podobne rzeczy. Minęło trochę czasu, odkąd go użyłem, więc nie wiem, czy będzie to wyróżnienie na temat nieużywanych metod.

Możesz także wypróbować niektóre polecenia bash (grep/ack/find), aby wyszukać fragmenty kodu.

+1

Czy RubyMine ma narzędzie do wyszukiwania nieużywanego kodu? – professormeowingtons

+0

@professormeowingtons Nie sądzę, –