Respuestas:
NOTA: Esto no ejecuta la prueba a través de rake
. Entonces, cualquier código que tenga Rakefile
NO se ejecutará.
Para ejecutar una sola prueba, use el siguiente comando del directorio principal de su proyecto rails:
ruby -I test test/unit/my_model_test.rb -n test_name
Esto ejecuta una única prueba llamada "nombre", definida en la clase MyModelTest en el archivo especificado. Test_name se forma tomando el nombre de la prueba, precediéndola con la palabra "test" y separando las palabras con guiones bajos. Por ejemplo:
class MyModelTest < ActiveSupport::TestCase
test "valid with good attributes" do
# do whatever you do
end
test "invalid with bad attributes" do
# do whatever you do
end
end
Puede ejecutar ambas pruebas a través de:
ruby -I test test/unit/my_model_test.rb
y solo la segunda prueba a través de
ruby -I test test/unit/my_model_test.rb -n test_invalid_with_bad_attributes
0 tests, 0 assertions, 0 failures, 0 errors
. Rieles 3.0.7.
-n "/good/"
. El escape de Shell siempre es divertido, por lo que tiendo a mantener expresiones regulares simples, pero es mucho más fácil que escribir el nombre completo de la prueba todo el tiempo.
test/
carpeta. Por ejemplo, si quiero ejecutar la prueba activesupport/test/core_ext/array_ext_test.rb
, debería estar activesupport/
primero.
-n "/good/"
trabajó.
Ejecute un archivo de prueba :
rake test TEST=tests/functional/accounts_test.rb
Ejecute una sola prueba en un archivo de prueba:
rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n /paid accounts/"
(Del comentario de @Puhlze.)
rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n '/paid accounts/'"
(encerrándolo /paid accounts/
con comillas simples)
Para rieles 5:
rails test test/models/my_model.rb
bin/rails test test/models/user_test.rb:27
Gracias a @James, la respuesta parece ser:
rails test test/models/my_model.rb:22
Suponiendo que 22 es el número de línea de la prueba dada. Según la ayuda de rails:
$ rails test --help
Puede ejecutar una sola prueba agregando un número de línea a un nombre de archivo:
bin/rails test test/models/user_test.rb:27
Además, tenga en cuenta que su prueba debe heredar de ActionDispatch :: IntegrationTest para que esto funcione (Ese fue mi error):
class NexApiTest < ActionDispatch::IntegrationTest
.
.
.
En los carriles 5,
Utilicé esta manera para ejecutar un solo archivo de prueba (todas las pruebas en un archivo)
rails test -n /TopicsControllerTest/ -v
Para ejecutar una sola prueba en la suite Rails real:
bundle exec ruby -I"railties/test" actionpack/test/template/form_options_helper_test.rb
La mejor manera es mirar directamente en las guías: http://guides.rubyonrails.org/contributing_to_ruby_on_rails.html#running-tests
cd actionmailer
bundle exec ruby -w -Itest test/mail_layout_test.rb -n test_explicit_class_layout
Esa fue una tonta pregunta de medianoche mía. Rails imprime amablemente el comando que está ejecutando rake test
. El resto es un ejercicio de cortar y pegar.
~/projects/rails/actionpack (my2.3.4)$ ruby -I"lib:test" "/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/controller/base_test.rb"
Si desea ejecutar una sola prueba, puede ejecutarlas como un script Ruby normal
ruby actionmailer/test/mail_layout_test.rb
También puede ejecutar un conjunto completo (por ejemplo, ActiveRecord o ActionMailer) entrando cd
en el directorio y ejecutándose rake test
allí.
require File.join(File.dirname(__FILE__), '..', 'test_helper')
cd
sí funciona. Para ser claros (no estoy seguro si estoy leyendo mal esto, pero dijiste "archivos de prueba generados"), esto es para la biblioteca Rails en sí, no para un proyecto Rails.
Primero, acceda a la carpeta de la biblioteca que desea probar (esto es importante) y luego ejecute:
~/Projects/rails/actionview (master)$ ruby -I test test/template/number_helper_test.rb
Carpeta Rails
bundle install
bundle exec ruby -I"activerecord/test" activerecord/test/cases/relation/where_test.rb
Tenga en cuenta que necesita cargar la carpeta apropiada: "activerecord / test" (donde tiene prueba)