Jak mogę uruchomić pojedynczy test z zestawu testów rails?Jak uruchomić pojedynczy test z zestawu testów rails?
rake test ANYTHING
wydaje się nie pomagać.
Jak mogę uruchomić pojedynczy test z zestawu testów rails?Jak uruchomić pojedynczy test z zestawu testów rails?
rake test ANYTHING
wydaje się nie pomagać.
UWAGA:Nie powoduje to uruchomienia testu przez rake
. Więc żaden kod, który masz w Rakefile
NIE zostanie wykonany.
Aby uruchomić pojedynczy test, należy użyć następującego polecenia od głównego katalogu Twojego projektu Rails za:
ruby -I test test/unit/my_model_test.rb -n test_name
ten przebiega jeden test o nazwie „nazwa”, zdefiniowanego w MyModelTest klasy w określonym pliku. Nazwa testu jest tworzona przez pobranie nazwy testu, poprzedzając ją słowem "test", a następnie oddzielając słowa od podkreśleń. Na przykład:
class MyModelTest < ActiveSupport::TestCase
test "valid with good attributes" do
# do whatever you do
end
test "invalid with bad attributes" do
# do whatever you do
end
end
można uruchomić zarówno testy poprzez:
ruby -I test test/unit/my_model_test.rb
i tylko drugi test poprzez
ruby -I test test/unit/my_model_test.rb -n test_invalid_with_bad_attributes
Czy to działa z testami funkcjonalnymi? Rails 3? –
To nie działa dla mnie (w testach funkcjonalnych lub jednostkowych). Otrzymuję '0 testów, 0 asercji, 0 błędów, 0 błędów'. Railsy 3.0.7. –
Jestem osobiście fanem formularza regex: '-n"/good/"'. Wyrzucanie powłoki jest zawsze zabawne, więc staram się trzymać prostych wyrażeń, ale jest to znacznie łatwiejsze niż pisanie pełnej nazwy testowej przez cały czas. – Groxx
Jeśli chcesz uruchomić pojedynczy test, można po prostu uruchomić je jako zwykły skryptu Ruby
ruby actionmailer/test/mail_layout_test.rb
Można również uruchomić cały zestaw (np. ActiveRecord lub ActionMailer) przez cd
-ing Into the katalog i działający tam rake test
.
Nie w Railsach - przynajmniej nie z domyślnymi wygenerowanymi plikami testowymi. W pierwszej linii "wymagają" test_helper "", ale ścieżka ładowania nie zostanie ustawiona w czasie. Jeśli zmienisz każdą pierwszą linię do jawnego wymagania ("wymagaj pliku File.join (nazwa pliku.display (__ FILE__)," .. "," test_helper ")"), to twoje rozwiązanie działa. –
ahem, to 'wymagają plików File.join (nazwa pliku (__ FILE__), '..', 'test_helper')' –
@Gaius Podwójnie zaznaczone. Pierwszy nie działa, ale 'cd'-ing w nie. Dla jasności (nie jestem pewien, czy źle to odczytam, ale powiedziałeś "wygenerowane pliki testowe"), dotyczy to samej biblioteki Railsów, * nie * projektu Railsów. – Aupajo
To było głupie pytanie o północy z kopalni. Railsy uprzejmie wypisują polecenie, które wykonuje na rake test
. Reszta to ćwiczenie wycinania i wklejania.
~/projects/rails/actionpack (my2.3.4)$ ruby -I"lib:test" "/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/controller/base_test.rb"
Aby uruchomić pojedynczy test w rzeczywistej Rails Suite:
bundle exec ruby -I"railties/test" actionpack/test/template/form_options_helper_test.rb
uruchomić plik testową:
rake test TEST=tests/functional/accounts_test.rb
Uruchomić pojedynczy test w pliku testowego:
rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n /paid accounts/"
(Z komentarza @Puhlze.)
Ponadto, jeśli chcesz uruchomić pojedynczy test w podanym pliku, możesz dodać środowisko testowe var, które zostanie przekazane do testu. NA PRZYKŁAD. test rake TEST = tests/functional/accounts_test.rb TESTOPTS = "- n/paid accounts /" – Puhlze
Jeśli używasz bundler, jest to dobry sposób na zrobienie tego. –
jeśli to ostatnie polecenie testowe nie działa, spróbuj 'test rake TEST = tests/functional/accounts_test.rb TESTOPTS =" - n '/ paid accounts /' "' (ujmując '/ paid accounts /' z pojedynczymi cudzysłowami) – rrw
dla szyn 5:
rails test test/models/my_model.rb
Ale to uruchamia wszystkie przypadki testowe w pliku, pytanie wymaga uruchomienia pojedynczego testu ... – user000001
pierwsze, uzyskać dostęp do folderu lib chcesz przetestować (to ważne), a następnie uruchomić:
~/Projects/rails/actionview (master)$ ruby -I test test/template/number_helper_test.rb
Najlepszym sposobem jest Patrzenie bezpośrednio na prowadnicach: http://guides.rubyonrails.org/contributing_to_ruby_on_rails.html#running-tests
cd actionmailer
bundle exec ruby -w -Itest test/mail_layout_test.rb -n test_explicit_class_layout
w szynach 5,
użyłem w ten sposób, aby uruchomić jeden plik testowy (wszystkie testy w jednym pliku)
rails test -n /TopicsControllerTest/ -v
to jest najlepsza odpowiedź na pytanie o ostatnie wersje szyn, +1 – user000001
Dzięki @James, odpowiedź wydaje się być:
rails test test/models/my_model.rb:22
Założenie 22 jest numerem linii danego testu. Według szynach pomóc:
$ rails test --help
można uruchomić jeden test, dołączając numer linii do pliku:
bin/rails test test/models/user_test.rb:27
Należy również pamiętać, że test powinien dziedziczyć ActionDispatch: : Test integracji (aby to działało) (To był mój błąd):
class NexApiTest < ActionDispatch::IntegrationTest
.
.
.
To wydaje się być najlepszą odpowiedzią opartą na przewodnikach Railsowych, o najmniej do testowania konkretnej linii. – tfantina
możliwy duplikat [działającego pojedynczego zespołu szynowego/test funkcjonalny] (http://stackoverflow.com/questions/274349/running-single-rails-unit-functional-test) –