Jak mogę uruchomić pojedynczy test z zestawu testów rails?
rake test ANYTHING
wydaje się nie pomagać.
ruby-on-rails
unit-testing
rake
artemave
źródło
źródło
Odpowiedzi:
UWAGA: To nie uruchamia testu za pośrednictwem
rake
. Więc żaden kod, który masz w nimRakefile
NIE zostanie wykonany.Aby uruchomić pojedynczy test, użyj następującego polecenia z głównego katalogu projektu rails:
ruby -I test test/unit/my_model_test.rb -n test_name
Spowoduje to uruchomienie pojedynczego testu o nazwie „name”, zdefiniowanego w klasie MyModelTest w określonym pliku. Nazwa testu jest tworzona przez pobranie nazwy testu, poprzedzenie go słowem „test”, a następnie oddzielenie słów podkreśleniami. 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żesz uruchomić oba testy poprzez:
ruby -I test test/unit/my_model_test.rb
i dopiero drugi test przez
ruby -I test test/unit/my_model_test.rb -n test_invalid_with_bad_attributes
źródło
0 tests, 0 assertions, 0 failures, 0 errors
. Rails 3.0.7.-n "/good/"
. Ucieczka z powłoki jest zawsze zabawna, więc trzymam się prostych wyrażeń regularnych, ale jest o wiele łatwiejsza niż ciągłe wypisywanie pełnej nazwy testu.test/
folder. Na przykład, jeśli chcę uruchomić testactivesupport/test/core_ext/array_ext_test.rb
, powinienem byćactivesupport/
pierwszy.-n "/good/"
pracował.Uruchom plik testowy :
rake test TEST=tests/functional/accounts_test.rb
Uruchom pojedynczy test w pliku testowym:
rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n /paid accounts/"
(Z komentarza @Puhlze.)
źródło
rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n '/paid accounts/'"
(/paid accounts/
w pojedynczych cudzysłowach)Dla szyn 5:
rails test test/models/my_model.rb
źródło
bin/rails test test/models/user_test.rb:27
Dzięki @James wydaje się, że odpowiedź brzmi:
rails test test/models/my_model.rb:22
Zakładając, że 22 to numer linii danego testu. Według szyn pomagają:
Pamiętaj również, że Twój test powinien dziedziczyć po ActionDispatch :: IntegrationTest, aby to zadziałało (to był mój błąd):
class NexApiTest < ActionDispatch::IntegrationTest . . .
źródło
W szynach 5,
W ten sposób uruchomiłem pojedynczy plik testowy (wszystkie testy w jednym pliku)
rails test -n /TopicsControllerTest/ -v
spójrz tutaj https://stackoverflow.com/a/41183694/3626659
źródło
Aby uruchomić pojedynczy test w aktualnym zestawie Railsów:
bundle exec ruby -I"railties/test" actionpack/test/template/form_options_helper_test.rb
źródło
Najlepiej zajrzeć bezpośrednio do przewodników: 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
źródło
To było moje głupie pytanie o północy. Railsy uprzejmie wypisują polecenie, na którym są wykonywane
rake test
. Reszta to ćwiczenie „wytnij i wklej”.~/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"
źródło
W mojej sytuacji
rake
tylko działaTESTOPTS="-n='/sample/'"
:bundle exec rake test TEST=test/system/example_test.rb TESTOPTS="-n='/sample/'"
źródło
Jeśli chcesz uruchomić pojedynczy test, możesz po prostu uruchomić go jako zwykły skrypt Ruby
ruby actionmailer/test/mail_layout_test.rb
Możesz także uruchomić cały pakiet (np. ActiveRecord lub ActionMailer)
cd
wchodząc do katalogu i uruchamiając sięrake test
w nim.źródło
require File.join(File.dirname(__FILE__), '..', 'test_helper')
cd
-ing działa. Dla jasności (nie jestem pewien, czy źle to czytam, ale powiedziałeś "wygenerowane pliki testowe"), to jest dla samej biblioteki Rails, a nie projektu Rails.Najpierw uzyskaj dostęp do folderu biblioteki, którą chcesz przetestować (jest to ważne), a następnie uruchom:
~/Projects/rails/actionview (master)$ ruby -I test test/template/number_helper_test.rb
źródło
Folder Rails
bundle install bundle exec ruby -I"activerecord/test" activerecord/test/cases/relation/where_test.rb
Uwaga, musisz załadować odpowiedni folder: „activerecord / test” (gdzie masz test)
źródło