Die folgende Antwort basiert auf: How to run single test from rails test suite? (Stackoverflow)
Aber nur sehr kurz, hier ist die Antwort:
ruby -I test test/functional/whatevertest.rb
Für einen spezifischenfunctional
Test laufen:
ruby -I test test/functional/whatevertest.rb -n test_should_get_index
Setzen Sie einfach Unterstriche an Stellen von Leerzeichen in Testnamen (wie oben) oder zitieren Sie den Titel wie folgt :
ruby -I test test/functional/whatevertest.rb -n 'test should get index'
Beachten Sie, dass nur für unit
Tests functional
mit unit
in den obigen Beispielen ersetzen. Und wenn Sie mit bundler Ihrer Anwendung gem Abhängigkeiten zu verwalten, müssen Sie die Tests mit bundle exec
ausführen müssen, wie folgt:
bundle exec ruby -I test test/unit/specific_model_test.rb
bundle exec ruby -I test test/unit/specific_model_test.rb -n test_divide_by_zero
bundle exec ruby -I test test/unit/specific_model_test.rb -n 'test divide by zero'
Am wichtigsten ist, beachten Sie, dass das Argument der -n
Schalter Der Name des Tests und das vorangestellte Wort "test" mit Leerzeichen oder Unterstrichen, je nachdem, ob Sie den Namen angeben oder nicht. Der Grund ist, dass test
eine bequeme Methode ist. Die folgenden beiden Verfahren sind äquivalente:
test "should get high" do
assert true
end
def test_should_get_high
assert true
end
... und kann als entweder der folgenden (sie sind äquivalente) ausgeführt werden:
bundle exec ruby -I test test/integration/misc_test.rb -n 'test should get high'
bundle exec ruby -I test test/integration/misc_test.rb -n test_should_get_high
das ist ein gutes. Ich habe ein bisschen geändert in (cd test && ruby functional/whatsoevertest.rb), damit es mit der relativen Verzeichnisstruktur funktioniert. Macht vollkommen Sinn :) –
Mit Ihrem Update aktualisiert. – tvanfosson