2011-08-21 15 views
5

Me preguntaba si podría ejecutar mis pruebas bajo la consola de rieles en lugar de la línea de comandos. En realidad, la razón de esto es la prueba de rake: las unidades en la línea de comando tardan años en cargar el entorno de los rieles. Así que pensé, ¿por qué no iniciar una consola para cargar el entorno una vez y luego seguir ejecutando la unidad de rake? Pruebas cada vez que quería verificar mi código. Después de todo, los rieles deben ser ágiles y promover el desarrollo ágil. Así que probé esto. Primero de todo lo que tenía que decir:Prueba de consola y rastrillo Rails: unidades

requieren 'Rake'

pero incluso después de hacer eso me dieron el mensaje de error:

irb(main):002:0> Rake::Task['test.units'].invoke 
RuntimeError: Don't know how to build task 'test.units' 

supongo que tengo que decirle de alguna manera dónde buscar. ¿Alguna idea?

Gracias

Chris

Respuesta

5
ruby-1.9.2-p290 :001 > require 'rake' 
ruby-1.9.2-p290 :002 > r = Rake.application 
ruby-1.9.2-p290 :003 > r.init 
ruby-1.9.2-p290 :004 > r.load_rakefile 
ruby-1.9.2-p290 :005 > r['test:units'].invoke 
+1

Gracias, funcionó la primera vez (pero en realidad todavía tardaba años en ejecutarse) y luego devolvió nada cuando intenté ejecutar r ['test: units']. Invocar nuevamente. Creo que miraré a Spork. – Chris

+1

En realidad, agregar r.clear me permite repetir r.load_rakefile yr ['test: units']. Invoke nuevamente. El tiempo para ejecutar esto en mi computadora se redujo de 80 segundos (rastrillo en la línea de comando) a 25 segundos, y por lo tanto una mejora sustancial, aunque aún bastante lento. – Chris

0

Una mejor idea es utilizar Spork para mantener el ambiente cargado y luego Autotest para ejecutar pruebas de forma automática cuando los archivos cambian.

+0

Sí, creo que este es el camino a seguir. Sin embargo, estoy usando RoR en un pequeño módulo uni y no quería tener que hablar sobre rspec y otras cosas que no están cubiertas por el libro Desarrollo de software ágil con Rails. Me pregunto si el paquete básico de rieles debería cambiar a spork, etc. Parece un poco extraño que todavía incluya tecnología de prueba demasiado lenta para TDD. – Chris

Cuestiones relacionadas