Ich kann alle Tests in einer einzigen Datei ausführen mit:
rake test TEST=path/to/test_file.rb
Wenn ich jedoch nur einen Test in dieser Datei ausführen möchte, wie würde ich das tun?
Ich suche nach ähnlichen Funktionen wie:
rspec path/to/test_file.rb -l 25
ruby
ruby-on-rails-3
minitest
Josiah Kiehl
quelle
quelle
rails test path/to/test_file.rb:25
siehe @Derek_Hill ans - entnommen ausguides.rubyonrails.org/testing.html#the-rails-test-runnerAntworten:
Jep! Verwenden Sie Nick Quarantos "m" Edelstein . Damit kann man sagen:
quelle
m
Derzeit funktioniert dieser Minitest 5.0 nicht .Der Befehl sollte lauten:
quelle
TESTOPTS=...
weg-v
?Hast du es versucht:
quelle
specify {}
? Diese werden nur alstest_0001_anonymous
... angezeigt, und es kann mehreretest_0001_anonymous
s geben, wenn dieselbe Syntax in mehreren Beschreibungsblöcken verwendet wird. Gibt es Vorschläge für die Ausführung einzelner Tests in dieser Umgebung?cannot load such file -- test_helper
.ruby -Itest path/to/tc_file.rb --name test_method_name
wie stackoverflow.com/a/15714985/327786bundle exec ruby -I lib path/to --name test_fit
Kein Edelstein erforderlich:
ruby -Itest test/lib/test.rb --name /some_test/
Quelle: http://blog.arvidandersson.se/2012/03/28/minimalicous-testing-in-ruby-1-9
quelle
Dies ist eines der Dinge, die mich an den
string name definition
Tests stören .Wenn du. .. hast:
Sie wissen immer, wie Ihr Test benannt ist, damit Sie ihn folgendermaßen ausführen können:
Aber wenn Sie so etwas haben wie:
Sie sind sich nie sicher, wie dieser Test intern wirklich benannt ist, daher können Sie die
-n
Option nicht direkt verwenden.Um zu wissen, wie dieser Test intern benannt ist, haben Sie nur eine Option: Führen Sie die gesamte Datei aus, um herauszufinden, wie Sie in den Protokollen suchen.
Meine Problemumgehung besteht darin, (zeitlich) dem Testnamen etwas hinzuzufügen, das sehr einzigartig ist, wie:
und verwenden Sie dann die RegEx- Version des Parameters '-n' wie folgt :
quelle
__method__
im Kontext der aktuell ausgeführten Methode (in diesem Fall Ihres Tests) aufrufen . Die vorliegende Implementierung führt zu so etwas wie"does not break my stuff".gsub(" ", "_").prepend("test_")
. Führen Sie dann beispielsweise ausruby -Itest test/integration/stuff_flow_test.rb --name test_does_not_break_my_stuff
.Wenn Sie MiniTest mit Rails 5+ verwenden, können Sie alle Tests am besten in einer einzigen Datei ausführen:
Und für einen einzelnen Test (z. B. in Zeile 25):
Siehe http://guides.rubyonrails.org/testing.html#the-rails-test-runner
quelle
Sie können dies verwenden, um eine einzelne Datei auszuführen:
Ich habe auch verwendet
zur besseren Anzeige.
quelle
Es gibt zwei Möglichkeiten, dies zu tun:
Rake::TestTask
Ziel, um einen anderen Testlader zu verwenden.Rake::TestTask
(ab Rake 0.8.7) kann theoretisch zusätzliche OptionenMiniTest::Unit
mit einer"TESTOPTS=blah-blah"
Befehlszeilenoption übergeben, zum Beispiel:In der Praxis
--name
funktioniert die Option (ein Filter für Testnamen) aufgrund von Rake-Interna nicht. Um dies zu beheben, müssen Sie einen kleinen Affen-Patch in Ihr Rakefile schreiben:Für diesen Patch müssen Sie eine Datei erstellen
test/my-minitest-loader.rb
:Geben Sie ein, um alle möglichen Optionen für Minitest zu drucken
quelle
rake
(0.9.2) korrekt funktioniert und kein Affen-Patch erforderlich ist.TESTOPTS="--name test_foobar"
,TESTOPTS="--name=test_foobar"
funktioniert Version 10.5.0 nicht, funktioniert aber .Sie können
--name
einen Test anhand seines Namens oder einer Nummer innerhalb seines Namens ausführen:z.B:
Dieses Flag ist in der README von Minitest dokumentiert .
quelle
Wenn Sie Turn gem mit Minitest verwenden, stellen Sie sicher, dass Sie die
Turn.config.pattern
Option verwenden, da der Run Minitest-Läufer die Option --name in ARGs nicht berücksichtigt.quelle
name
Option war, die die Option verschluckte . Vielen Dank! Da dieser Turn nicht mehr aufrechterhalten wird, plane ich, zu Minitest-Reportern zu migrierenEs gibt ein Juwel, das genau das tut :
minitest-line
.von https://github.com/judofyr/minitest-line#minitest-line
quelle
ich benutze
ruby /path/to/test -n /distinguishable word/
Bearbeiten:
-n
ist eine Abkürzung für--name
.distinguishable word
kann eine beliebige Zeichenfolge sein, die Sie in die Testbeschreibung einfügen. Normalerweise verwende ich ein zufälliges Wort, von dem ich weiß, dass es in den Beschreibungen anderer Tests nicht vorhanden ist.quelle
-n
Parameter?--name
. Nur eine Annehmlichkeitssache. Besonders nützlich mit dem / regex /, füge ich normalerweise nur ein zufälliges Wort in einen Testnamen ein (von dem ich weiß, dass es in den Beschreibungen anderer Tests nicht vorhanden ist).Folgendes wird funktionieren
Dies kann vorbei laufen
quelle
rails test path/to/test_file.rb:25
werde es tunquelle