Seamos claros, especialmente para nubes que puedan estar leyendo este post: RAILS_ENV=production
(localmente) no es lo mismo que correr prueba "en el entorno production
." Sé que (OP) lo sabe, pero el peligro de ejecutar pruebas en el entorno de producción justifica esta advertencia.
Hay varias razones para sólo se ejecutan en el test
env, en general, en relación con el manejo de la base de datos:
- Rspec construye una costumbre 'versión' de los datos en la base de datos, y opera sobre aquella, persistiendo algunos cambios en el disco.
- Muchas pruebas borran los datos existentes, hacia el final del aislamiento de la prueba y haciendo las cosas idempotentes. Esto podría sacar los datos que está utilizando a edificios en prueba. otros
razones son lo largo de ellos líneas que han conjeturaron ya:
- su entorno de producción no debe incluir piedras preciosas que se utilizan para la prueba. ¿Por qué ?:
- gemas pruebas añadir más código que puede necesitar ot lod & plazo, innecesariamente, en la aplicación en vivo
- gemas relacionados con las pruebas pueden introducir los agujeros de seguridad en su aplicación de producción.
- Es posible que ciertos activos no se prueben correctamente después de que se hayan "compilado".
- activos y otra precompilación deploy-pipe-line pueden manejarse de manera diferente/apagar/etc, en servicio del proceso de prueba.
- Ciertas API y servicios pueden ser con espacio aislado, o anulados, en prueba/puesta en escena, como llamadas API a servicios de pago por uso, como correos electrónicos o informes.
Las posibilidades son demasiado personalizado (a su aplicación) para sugerir una mejor práctica ... pero, ni que decir tiene, hay muchos ajustes del modo de prueba '' que pueden necesitar configuración cuando rails_ENV=test
Creo que aquí la mayoría de la gente usaría el término 'integridad' de datos en lugar de 'seguridad'. La seguridad generalmente implica una alteración [maliciosa] por una parte externa. –
@NewAlexandria Buen punto – rudolph9
[Este] (http://stackoverflow.com/questions/8607680/using-cucumber-rspec-in-a-production-environment) [is] (http://stackoverflow.com/questions/ 6200931/passenger-misses-development-gem-in-production-environment) [a common] (http://stackoverflow.com/questions/7432099/rails-testing-production) [problem] (http://stackoverflow.com)/questions/11644233/discussion-is-rspec-for-test-environment), que [tiene contexto en SO] (http://stackoverflow.com/search?q=rspec+production+environment&submit=search) –