Mogę uruchomić wszystkie testy w jednym pliku za pomocą:
rake test TEST=path/to/test_file.rb
Jeśli jednak chcę uruchomić tylko jeden test w tym pliku, jak mam to zrobić?
Szukam podobnej funkcjonalności do:
rspec path/to/test_file.rb -l 25
ruby
ruby-on-rails-3
minitest
Josiah Kiehl
źródło
źródło
rails test path/to/test_file.rb:25
zobacz @Derek_Hill ans - pobrane z guide.rubyonrails.org/testing.html#the-rails-test-runnerOdpowiedzi:
Tak! Użyj perełki „m” Nicka Quaranto . Dzięki niemu możesz powiedzieć:
źródło
m
obecnie nie działa w tym programie Minitest 5.0 .Polecenie powinno być:
źródło
TESTOPTS=...
z dala-v
robi?Czy próbowałeś:
źródło
specify {}
? Pojawiają się po prostu jakotest_0001_anonymous
... i może być ich wiele,test_0001_anonymous
jeśli ta sama składnia jest używana w wielu blokach opisu ... jakieś sugestie dotyczące uruchamiania pojedynczych testów w tego rodzaju środowisku?cannot load such file -- test_helper
.ruby -Itest path/to/tc_file.rb --name test_method_name
jak stackoverflow.com/a/15714985/327786bundle exec ruby -I lib path/to --name test_fit
Nie jest wymagany klejnot:
ruby -Itest test/lib/test.rb --name /some_test/
Źródło: http://blog.arvidandersson.se/2012/03/28/minimalicous-testing-in-ruby-1-9
źródło
To jedna z rzeczy, które przeszkadzają mi w kwestii
string name definition
w testach.Kiedy masz:
zawsze wiesz, jak nazywa się Twój test, więc możesz go wykonać w ten sposób:
Ale kiedy masz coś takiego:
nigdy nie jesteś pewien, jak ten test jest naprawdę nazwany wewnętrznie, więc nie możesz użyć rozszerzenia
-n
opcji tylko bezpośrednio.Aby dowiedzieć się, jak ten test jest nazywany wewnętrznie, masz tylko jedną opcję: wykonaj cały plik, aby spróbować znaleźć informacje w dziennikach.
Moje obejście polega (tymczasowo) na dodaniu czegoś do nazwy testu, na przykład:
a następnie użyj wersji RegEx parametru „-n”, na przykład:
źródło
__method__
w kontekście aktualnie wykonywanej metody (w tym przypadku twojego testu). Obecne wdrożenie skutkuje czymś w rodzaju"does not break my stuff".gsub(" ", "_").prepend("test_")
. Następnie uruchom na przykładruby -Itest test/integration/stuff_flow_test.rb --name test_does_not_break_my_stuff
.Jeśli używasz MiniTest z Railsami 5+, najlepszym sposobem na uruchomienie wszystkich testów w jednym pliku jest:
A dla pojedynczego testu (np. W linii 25):
Zobacz http://guides.rubyonrails.org/testing.html#the-rails-test-runner
źródło
Możesz użyć tego do uruchomienia pojedynczego pliku:
Użyłem też
dla lepszego wyświetlania.
źródło
Można to zrobić na dwa sposoby:
Rake::TestTask
cel, aby użyć innego programu ładującego testy.Rake::TestTask
(od rake 0.8.7) teoretycznie jest w stanie przekazać dodatkowe opcjeMiniTest::Unit
za pomocą"TESTOPTS=blah-blah"
możliwością linii polecenia, na przykład:W praktyce opcja
--name
(filtr dla nazw testów) nie zadziała z powodu rake'u. Aby to naprawić, musisz napisać małą małpkę w swoim Rakefile:Ta poprawka wymaga utworzenia pliku
test/my-minitest-loader.rb
:Aby wydrukować wszystkie możliwe opcje programu Minitest, wpisz
źródło
rake
nowszą wersją (0.9.2) i nie jest wymagana żadna łatka małpa.TESTOPTS="--name test_foobar"
nie działa, aleTESTOPTS="--name=test_foobar"
działa.Możesz przejść,
--name
aby uruchomić test, używając jego nazwy lub numeru w nazwie:na przykład:
Ta flaga jest udokumentowana w pliku README programu Minitest .
źródło
Jeśli używasz Turn gem z minitestem, po prostu upewnij się, że używasz
Turn.config.pattern
opcji, ponieważ runner Turn Minitest nie obsługuje opcji --name w ARG.źródło
name
opcję. Dzięki! Ponieważ Turn nie jest już utrzymywany, planuję migrację do minitest-reportersJest to klejnot, który robi dokładnie to:
minitest-line
.z https://github.com/judofyr/minitest-line#minitest-line
źródło
używam
ruby /path/to/test -n /distinguishable word/
Edycja:
-n
to skrót dla--name
.distinguishable word
może to być dowolny ciąg, który umieścisz w opisie testu, zwykle używam jakiegoś przypadkowego słowa, o którym wiem, że nie będzie obecne w opisach innych testów.źródło
-n
parametr?--name
. Po prostu wygoda. Szczególnie przydatne w przypadku / regex /, zwykle po prostu umieszczam jakieś przypadkowe słowo w nazwie testu (wiem, że nie będzie ono obecne w opisach innych testów).Następujące będzie działać
To może przebiegać
źródło
rails test path/to/test_file.rb:25
zrobię toźródło