Puedo ejecutar todas las pruebas en un solo archivo con:
rake test TEST=path/to/test_file.rb
Sin embargo, si quiero ejecutar solo una prueba en ese archivo, ¿cómo lo haría?
Estoy buscando una funcionalidad similar a:
rspec path/to/test_file.rb -l 25
ruby
ruby-on-rails-3
minitest
Josiah Kiehl
fuente
fuente
rails test path/to/test_file.rb:25
ver @Derek_Hill ans - tomado de guides.rubyonrails.org/testing.html#the-rails-test-runnerRespuestas:
¡Sip! Usa la gema "m" de Nick Quaranto . Con ella puedes decir:
fuente
m
Actualmente no funciona este Minitest 5.0 .El comando debe ser:
fuente
TESTOPTS=...
fuera-v
?Has probado:
fuente
specify {}
? Esos solo aparecen comotest_0001_anonymous
... y podría haber múltiplestest_0001_anonymous
s si se usa la misma sintaxis en múltiples bloques de descripción ... ¿alguna sugerencia para ejecutar pruebas individuales en este tipo de entorno?cannot load such file -- test_helper
.ruby -Itest path/to/tc_file.rb --name test_method_name
como stackoverflow.com/a/15714985/327786bundle exec ruby -I lib path/to --name test_fit
No se requiere gema:
ruby -Itest test/lib/test.rb --name /some_test/
Fuente: http://blog.arvidandersson.se/2012/03/28/minimalicous-testing-in-ruby-1-9
fuente
Esta es una de las cosas que me preocupan
string name definition
en las pruebas.Cuando tengas:
siempre sabes cómo se llama tu prueba para que puedas ejecutarla así:
Pero cuando tienes algo como:
nunca está seguro de cómo se denomina internamente esta prueba, por lo que no puede usar la
-n
opción directamente.Para saber cómo se nombra internamente esta prueba, solo tiene una opción: ejecutar todo el archivo para tratar de averiguar cómo buscar en los registros.
Mi solución es (temporalmente) agregar algo al nombre de prueba muy exclusivo como:
y luego use la versión RegEx del parámetro '-n' como:
fuente
__method__
dentro del contexto del método que se está ejecutando actualmente (su prueba, en este caso). La implementación actual da como resultado algo así"does not break my stuff".gsub(" ", "_").prepend("test_")
. Luego ejecute, por ejemploruby -Itest test/integration/stuff_flow_test.rb --name test_does_not_break_my_stuff
,.Si está utilizando MiniTest con Rails 5+, la mejor manera de ejecutar todas las pruebas en un solo archivo es:
Y para una sola prueba (por ejemplo, en la línea 25):
Ver http://guides.rubyonrails.org/testing.html#the-rails-test-runner
fuente
Puede usar esto para ejecutar un solo archivo:
Yo tambien uso
Para una mejor visualización.
fuente
Hay 2 formas de hacerlo:
Rake::TestTask
objetivo para usar un cargador de pruebas diferente.Rake::TestTask
(del rastrillo 0.8.7) teóricamente es capaz de pasar opciones adicionales aMiniTest::Unit
con"TESTOPTS=blah-blah"
opción de línea de comando, por ejemplo:En la práctica, la opción
--name
(un filtro para los nombres de las pruebas) no funcionará debido a las características internas del rastrillo. Para solucionarlo, deberá escribir un pequeño parche de mono en su Rakefile:Este parche requiere que crees un archivo
test/my-minitest-loader.rb
:Para imprimir todas las opciones posibles para Minitest, escriba
fuente
rake
(0.9.2) y no se requiere parche de mono.TESTOPTS="--name test_foobar"
no funciona, peroTESTOPTS="--name=test_foobar"
funciona.Puede pasar
--name
para ejecutar una prueba por su nombre o un número dentro de su nombre:p.ej:
Esta bandera está documentada en el archivo README de Minitest .
fuente
Si está usando Turn gem with minitest, solo asegúrese de usar la
Turn.config.pattern
opción ya que Turn Minitest runner no respeta la opción --name en los ARG.fuente
name
opción. ¡Gracias! Como ese turno ya no se mantiene, planeo migrar a reporteros másNo es una joya que hace exactamente eso:
minitest-line
.de https://github.com/judofyr/minitest-line#minitest-line
fuente
yo suelo
ruby /path/to/test -n /distinguishable word/
Editar:
-n
es una abreviatura de--name
.distinguishable word
puede ser cualquier cadena que coloque en la descripción de la prueba, por lo general uso alguna palabra aleatoria que sé que no estará presente en las descripciones de otras pruebas.fuente
-n
parámetro?--name
. Solo una cosa de conveniencia. Especialmente útil con / regex /, generalmente solo pongo una palabra aleatoria en el nombre de una prueba (que sé que no estará presente en las descripciones de otras pruebas).Siguiente funcionará
Esto puede correr por
fuente
rails test path/to/test_file.rb:25
lo haréfuente