La siguiente respuesta se basa en: How to run single test from rails test suite? (stackoverflow)
Pero muy brevemente, aquí está la respuesta:
ruby -I test test/functional/whatevertest.rb
Para una determinada prueba functional
, ejecute:
ruby -I test test/functional/whatevertest.rb -n test_should_get_index
Simplemente ponga guiones bajos en los lugares de espacios en los nombres de prueba (como arriba), o cite el título de la siguiente manera :
ruby -I test test/functional/whatevertest.rb -n 'test should get index'
Tenga en cuenta que para unit
pruebas basta con sustituir con functional
unit
en los ejemplos anteriores. Y si usted está usando bundler para gestionar las dependencias de la gema de su aplicación, que tendrá que ejecutar las pruebas con bundle exec
de la siguiente manera:
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'
más importante, tenga en cuenta que el argumento de que el interruptor es -n
el nombre de la prueba, y la palabra "prueba" antepuesta a ella, con espacios o guiones bajos dependiendo de si está citando el nombre o no. La razón es que test
es un método de conveniencia. Los dos métodos siguientes son equivalente:
test "should get high" do
assert true
end
def test_should_get_high
assert true
end
... y se pueden ejecutar como ya sea de los siguientes (que son equivalente):
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
esa es una buena. Cambié un poco a (prueba de cd && ruby functional/whatsoevertest.rb) para que funcione correctamente con la estructura de directorio relativa. Tiene perfecto sentido :) –
Actualizado con su solución. – tvanfosson