Mam specyfikację testową, która describes
ma klasę i ma różne, contexts
każda z różnymi it
blokami.
Czy jest sposób, aby context
tymczasowo wyłączyć ?
Próbowałem dodać pending "temporarily disabled"
wywołanie na samej górze w polu, context
które chcę wyłączyć, i zobaczyłem coś o toczeniu, kiedy uruchomiłem specyfikację, ale potem po prostu kontynuował wykonywanie pozostałych testów.
Oto, co miałem:
describe Something
context "some tests" do
it "should blah" do
true
end
end
context "some other tests" do
pending "temporarily disabled"
it "should do something destructive" do
blah
end
end
end
ale tak jak powiedziałem, po prostu uruchomiono testy w ramach oczekującego połączenia.
Wyszukiwanie doprowadziło mnie do wątku na liście dyskusyjnej, w którym twórca (?) Rspec mówi, że jest to możliwe w rspec 2, który uruchamiam. Myślę, że zadziałało, ale nie przyniosło oczekiwanego efektu wyłączenia wszystkich poniższych testów, o czym myślę, gdy widzę pending
połączenie.
Czy jest alternatywa, czy też robię to źle?
describe 'XXXXX' do .... end
describe 'XXXXX' do
. Działa jak urok, dzięki @Pyro!Użyj filtrów wykluczeń . Z tej strony: w Twoim
spec_helper.rb
(lubrails_helper.rb
)W twoim teście:
Kiedy uruchamiam „rspec ./spec/sample_spec.rb --format doc”
Następnie wynik powinien zawierać „grupa 2 przykład 1”
Wynik nie powinien zawierać „grupy 1, przykład 1”
Wynik nie powinien zawierać „grupy 1, przykład 2”
źródło
Zobacz, co o tym myślisz:
Lubię widzieć przyczyny moich oczekujących pozycji, kiedy wyłączam coś na „jakiś czas”. Służą jako małe komentarze / zadania do wykonania, które są prezentowane regularnie, a nie grzebane w komentarzach lub wykluczonych przykładach / plikach.
Zmiana
it
napending
lubxit
jest szybka i łatwa, ale wolę konstrukcję hash. Daje ci dokumentację każdego uruchomienia, jest drop-in (nie zmienia opisu / kontekstu / tego, więc muszę zdecydować, czego użyć ponownie później) i jest równie łatwo usuwany, jeśli decyzja zostanie podjęta lub bloker zostanie usunięty .Działa to tak samo w przypadku grup i pojedynczych przykładów.
źródło
pending:
iwskip:
rspec 3.6.0. Wydaje mi się, że to najlepsze rozwiązanie. w rspec3 w toku nadal uruchamia testy, aleskip
nie (jakkolwiek zastosujeszskip
).inny. https://gist.github.com/1300152
użyj xdescribe, xcontext, xit, aby go wyłączyć.
Aktualizacja:
Od rspec 2.11 domyślnie zawiera xit. więc nowy kod będzie
Stosowanie
źródło
Użyj oczekujących zamiast opisywać. Jeśli Twój blok to:
Możesz pominąć cały blok poprzez:
źródło
źródło
Tylko po to, żeby wyjaśnić, co się dzieje z twoim kodem. Włączając go tam, gdzie masz, jest on po prostu oceniany (i dlatego jest uruchamiany), gdy plik jest ładowany podczas uruchamiania. Jednak trzeba go uruchomić podczas wykonywania testów. Dlatego odpowiedzi sugerują umieszczenie
pending
(RSpec 2) lubskip
(RSpec 3) wbefore
bloku.źródło