Chcę być w stanie przeprowadzić testy jednego pliku specyfikacji - na przykład dla jednego pliku, który edytuję. rake spec
wykonuje wszystkie specyfikacje. Mój projekt nie jest projektem Rails, więc rake spec:doc
nie działa.
Nie wiem, czy to ma znaczenie, ale oto moja struktura katalogów.
./Rakefile ./lib ./lib/cushion.rb ./lib/cushion ./lib/cushion/doc.rb ./lib/cushion/db.rb ./spec ./spec/spec.opts ./spec/spec_helper.rb ./spec/db_spec.rb
Surowe wywołanie:
Teraz wymyśl, jak osadzić to w swoim edytorze.
źródło
To pytanie jest stare, ale pojawia się u góry Google, gdy szukasz sposobu na uruchomienie pojedynczego testu. Nie wiem, czy jest to najnowszy dodatek, ale aby uruchomić pojedynczy test ze specyfikacji, możesz wykonać następujące czynności:
gdzie -line number- to numer linii, który zawiera część twojego testu. Na przykład, jeśli masz specyfikację taką jak:
Powiedzmy, że jest zapisany w spec / models / foo_spec.rb. Wtedy biegniesz:
i wystarczyłoby uruchomić tę jedną specyfikację. W rzeczywistości liczba ta może wynosić od 2 do 5.
Mam nadzieję że to pomoże!
źródło
require
jest twoimi innymi plikami specyfikacji?rspec spec/models/foo_spec.rb:2:12:49
Możesz także użyć rzeczywistego tekstu przypadku testowego * e * xample za pomocą
-e
!Więc dla:
możesz użyć
nie trzeba tutaj grabić.
źródło
z pomocy (spec -h):
Przykład: spec spec / runner_spec.rb -l 162
źródło
:
zgodnie z dokumentacją i popularną odpowiedzią.Jeśli zainstalowałeś rspec jako wtyczkę, a nie klejnot, nie będziesz mieć
spec
pliku wykonywalnego.W każdym razie wszystko, co musisz zrobić, to uruchomić plik za pomocą ruby. Kod rspec jest wystarczająco sprytny, aby przeprowadzić dla Ciebie testy.
na przykład:
źródło
http://github.com/grosser/single_test pozwala robić rzeczy takie jak ..
źródło
Ruby 1.9.2 i Rails 3 mają łatwy sposób na uruchomienie jednego pliku specyfikacji:
Wyjaśnienie:
ruby
polecenie wydaje się być szybsze niżrake
polecenie-I spec
oznacza „dołącz katalog„ spec ”podczas wyszukiwania plików”spec/models/user_spec.rb
to plik, który chcemy uruchomić.źródło
Aby uruchomić wszystkie pliki rspec:
rspec
Uwaga: musisz być w katalogu głównym swojego projektu
Aby uruchomić jeden plik rspec:
rspec 'path_to/spec.rb'
Uwaga: zamień „path_to / spec.rb” na swoją ścieżkę. Cudzysłowy są opcjonalne.
Aby uruchomić jeden test rspec z jednego pliku:
rspec 'path_to/spec.rb:7'
Uwaga: 7 to numer linii, od której rozpoczyna się test
źródło
Miałem problem z uruchomieniem któregokolwiek z tych przykładów, może dlatego, że post jest stary, a polecenia się zmieniły?
Po kilku pogawędkach odkryłem, że działa:
rspec spec / models / user_spec.rb
To uruchomi tylko jeden plik i zapewni przydatne dane wyjściowe w terminalu.
źródło
specky.vim
źródło
Alternatywnie, spójrz na autotest.
Uruchomienie autotestu w oknie poleceń oznacza, że plik specyfikacji będzie wykonywany za każdym razem, gdy go zapiszesz. Będzie on także uruchamiany za każdym razem, gdy uruchamiany jest plik, który określasz.
Na przykład, jeśli masz plik specyfikacji modelu o nazwie person_spec.rb i plik modelu, który określa, o nazwie person.rb, to za każdym razem, gdy zapiszesz jeden z tych plików w edytorze, plik spec zostanie wykonany.
źródło
Chociaż na to pytanie napisano wiele świetnych odpowiedzi, żadna z nich nie używa Rspec
tags
podejścia .Używam tagów do uruchamiania jednej lub więcej specyfikacji w różnych plikach - tylko tych związanych z moim bieżącym zadaniem programistycznym.
Na przykład dodaję tag „dev” o wartości „current”:
wtedy biegnę
Różne tagi / wartości można ustawić w poszczególnych specyfikacjach lub grupach.
źródło
Powiedzmy, że przeprowadzasz test tworzenia todo. Zawsze możesz uruchomić ten konkretny kod specyfikacji todo, używając pliku crete_spec.rb jak poniżej.
Jeśli chcesz uruchomić wszystkie specyfikacje w jednym krótkim skrócie.
Jeśli chcesz uruchomić wszystkie specyfikacje dla określonego użytkownika kontrolera, to.
Mam nadzieję, że daje to więcej zrozumienia!
źródło