38 votos

cómo ejecutar todas las pruebas con minitest?

He descargado el código fuente de algún proyecto. Encontrado un bug. Se corrigió.

Ahora quiero ejecutar pruebas para averiguar, si yo no romper nada.

La prueba está en minitest DSL.

¿Cómo puedo ejecutarlos todos a la vez?

Buscado para alguna tarea de rake etc. No lo encontramos.

63voto

locks Puntos 755

aquí hay un enlace a Rake::TestTask.

Hay un ejemplo en la página para empezar.
Voy a publicar otro que yo estoy usando ahora para una joya:

require 'rake/testtask'

Rake::TestTask.new do |t|
  t.pattern = "spec/*_spec.rb"
end

Como usted puede ver, supongo que mis archivos están todos en '/lib' y que mis especificaciones son en '/spec' y su nombre whatever_spec.rb

Espero que ayude.

15voto

Powers Puntos 1742

bloquea la respuesta es mejor, pero yo también quería señalar que también puede ejecutar minitest directamente desde el mando como con el comando ruby. Para ejecutar las pruebas en la spec/calculator_spec.rb ejecución del archivo:

$ ruby spec/calculator_spec.rb 

Recuerde incluir el siguiente código en la calculator_spec.rb archivo:

require 'minitest/spec'
require 'minitest/autorun'

Ejecutar todas las pruebas en la spec/ directorio, utilice el siguiente comando (ver este post para más detalles de esta expansión no funciona con Minitest - Sólo un archivo que se ejecuta)

$ for file in spec/*.rb; do ruby $file; done 

8voto

Raymond Gan Puntos 159

Aquí está toda mi rakefile, lo que pongo en mi top directorio:

task :default => :test
task :test do
  Dir.glob('./test/*_test.rb').each { |file| require file}
end

Para ejecutar todos mis archivos de prueba a la vez, yo solo tipo rake. Eso es todo!

Asegúrese de tener require 'minitest/autorun' en la parte superior de cada uno de sus Minitest archivos. Dir.glob definitivamente NO funciona con Minitest.

Para obtener bonito, de color Minitest de salida, con los nombres de todos mis métodos de prueba, tengo el archivo minitest_helper.rb en mi /directorio de prueba. (Tuve que instalar la gema minitest-reporteros):

require 'minitest/reporters'
Minitest::Reporters.use!(Minitest::Reporters::SpecReporter.new)
require 'minitest/autorun'

Yo sólo tenía a require_relative './minitest_helper' en la parte superior de cada uno de mis archivos de prueba.

7voto

Theo Puntos 60103

Esto es lo que rake's TestTask hace bajo el capó, más o menos:

ruby -e 'ARGV.each { |path| require path }' test/test_*.rb

Si usted está usando JRuby y quiere evitar pagar el costo de inicio dos veces (una para el Rastrillo, a continuación, para el subproceso que el Rastrillo se inicia), sólo tiene que utilizar ese comando.

2voto

dkinzer Puntos 6339

Esto también puede ser hecho a través de un archivo Makefile.

default:
  echo "Dir.glob('./test/*_test.rb').each { |file| require file}" | ruby

ejecución make va a correr todas las pruebas.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X