pido disculpas si esta pregunta es un poco subjetivo ... Estoy tratando de averiguar la mejor manera de probar Rails 3 motores con pepino & Rspec. Para probar el motor, es necesaria una aplicación de rails 3. Aquí es lo que estoy haciendo actualmente:¿Cómo probar Rails 3 Engines with Cucumber & Rspec?
Agregar una aplicación de prueba de raíles a la raíz de la gema (myengine) ejecutando:
rails new /myengine/rails_app
Añadir pepino a
/myengine/rails_app/features
como lo haría en una aplicación Rails normalesRequerir de los rieles del motor Gem (usando
:path=>"/myengine"
) en/myengine/rails_app/Gemfile
Añadir especificación en el directorio raíz de la gema:
/myengine/spec
Incluir los accesorios en
/myengine/spec/fixtures
y añadir lo siguiente a mi env.rb cuc:
env.rb:
Fixtures.reset_cache
fixtures_folder = File.join(Rails.root, 'spec', 'fixtures')
fixtures = Dir[File.join(fixtures_folder, '*.yml')].map {|f| File.basename(f, '.yml') }
Fixtures.create_fixtures(fixtures_folder, fixtures)
¿Ves algún problema con su puesta en marcha ¿Me gusta esto? Las pruebas funcionan bien, pero estoy un poco indeciso para poner las funciones dentro de la aplicación de raíles de prueba. Originalmente intenté poner las características en la raíz de la gema y creé la aplicación de rieles de prueba dentro de features/support
, pero por alguna razón mi motor no se inicializó cuando realicé las pruebas, aunque pude ver que la aplicación cargaba todo lo demás cuando cuc corría .
Si alguien está trabajando con los carriles de Motores y está utilizando cuc y rspec para las pruebas, estaría interesado en escuchar su configuración.
* * ACTUALIZACIÓN
cambié mi configuración un poco desde que escribí esta pregunta. Decidí deshacerme del directorio de especificaciones debajo de la raíz del motor. Ahora solo creo una aplicación de rieles llamada "test_app" y configuro cuc y rspec dentro de esa aplicación como lo haría normalmente en una aplicación de rieles. Luego incluyo la gema como lo hice en el paso n. ° 3 anterior. Como el motor es una sub-aplicación, supongo que es mejor probarlo como si fuera una aplicación de rieles normal. Todavía estoy interesado en escuchar si alguien tiene una configuración diferente.
Ryan, gracias por la información. Eso es lo que estaba buscando. Parece que vienen algunas mejoras buenas en 3.1. Sin embargo, tiene problemas para instalar los rieles. "ERROR: no se pudo encontrar una joya válida 'pkg/rails-3.1.0.beta.gem' (> = 0) en cualquier repositorio" Todas las demás gemas (AR, AS, etc.) se compilan e instalan bien, pero no parece que el Rakefile esté construyendo la gema Rails. Tal vez algo con mi entorno ... Acabo de comenzar a solucionarlo, pero si tiene un minuto, avíseme si puede instalar edge desde la tarea de rake sin error. ¡Gracias hombre! – johnmcaliley
Estuve jugando un poco sin suerte y terminé construyendo la gema manualmente en el directorio de pkg. Luego la instalación del rake funcionó, ya que la gema estaba allí. No estoy seguro de por qué no funcionó de la caja. – johnmcaliley
Además, parece que hay un error con MIT-LICENSE en el directorio de plantillas. erb no puede encontrar Date.today ... ¿tal vez el método fue eliminado dinámicamente? Acabo de codificar la fecha en la plantilla como una solución temporal. Aparte de eso, la plantilla parece sólida. gracias de nuevo – johnmcaliley