Cada vez que deseo ejecutar la prueba de Rake se llama a la tarea db: test: prepare y reconstruye la base de datos de mi entorno de prueba desde schema.rb y migrations. Lo que me gustaría lograr es desactivar la llamada de db: test: prepare cuando quiero probar la aplicación make Rails. ¿Es posible sin modificar la gema de Rails?Cómo prevenir la prueba de Rake para llamar a la tarea db: test: prepare
10
A
Respuesta
13
He aquí una solución que he visto por ahí:
En su Rakefile:
Rake::TaskManager.class_eval do
def remove_task(task_name)
@tasks.delete(task_name.to_s)
end
end
En lib/tasks/db/test.rake
:
Rake.application.remove_task 'db:test:prepare'
namespace :db do
namespace :test do
task :prepare do |t|
# rewrite the task to not do anything you don't want
end
end
end
5
Hay un complemento que se encarga de esto: override_rake_task. Aquí es un ejemplo de uso rápida:
namespace :db do
namespace :test do
override_task :prepare do; end
end
end
0
Para algunos versión anterior de los rieles: puede colocar Rake::Task['db:test:prepare'].clear
al final de su Rakefile
Cuestiones relacionadas
- 1. Rails 3.1 motor rake db: test: prepare task missing
- 2. rake db: test: prepare no crea todas las tablas
- 3. ¿Cuál es la diferencia entre db: test: clone, db: test: clone_structure, db: test: load y db: test: prepare?
- 4. Después de Rails 3 upgrade rake db: test: prepare not working?
- 5. Ejecución de db: prueba: preparación de otra tarea de rastreo
- 6. Rails cómo ejecutar la tarea de rake
- 7. Cómo perfilar la tarea de Rake?
- 8. Rieles: rake db: prueba: preparar Vs prueba de rastrillo: Preparar
- 9. ¿Cómo fuerzo a RAILS_ENV en una tarea de rake?
- 10. Prueba de un método definido en una tarea de rake
- 11. ¿por qué 'rake test' intenta conectarse a mi DB de desarrollo?
- 12. Suprimir salida en Rake Tarea db: schema: cargar
- 13. ¿Cómo paso los argumentos de la tarea principal a la tarea secundaria en Rake?
- 14. ¿Cómo construir tarea 'db: poblar'
- 15. Descripción de la tarea de rake de acceso desde la Tarea
- 16. Cómo agregar 'rake test' al proyecto
- 17. cómo pasar múltiples parámetros para rake tarea
- 18. rake db: migrar y rake db: crear ambos trabajos en la base de datos de prueba, no en la base de datos de desarrollo
- 19. Prueba de una tarea de rake en rspec (y pepino)
- 20. ¿Cómo adjuntar una tarea personalizada para ejecutar antes de la tarea de prueba en sbt?
- 21. Rails Rake Tarea: acceso a la clase de modelo
- 22. ¿Cómo puedo pasar parámetros a una tarea rake que se invoca usando Rake :: Tarea
- 23. ¿Cómo obtener el PID de la tarea de rake actual?
- 24. tarea de rake multiproceso
- 25. rake db: migrate no funciona
- 26. ¿Los raíles ejecutan los inicializadores para la tarea de rake?
- 27. ¿Cómo puedo acelerar la tarea de Ruby/Rake?
- 28. ¿Ejecuta una tarea de Rake desde la migración?
- 29. ¿Cómo puedo llamar a una acción de controlador desde una tarea de rake?
- 30. ¿Cómo comienzo la consola IRB desde una tarea de rake?
Me gusta esto. Con esto no tiene que instalar ningún complemento y funciona bien. Sin embargo, ¿qué tal si quiero usar el método de preparación en el futuro? ¿Es posible mantenerlo solo eliminarlo de la cola de ejecución de Rake? –
En ese caso, supongo que tendrías que usar este método para reescribir 'test: units',' test: functionals', y 'test: integration' para que no hereden del' db: test: prepare 'tarea. – mckeed
En realidad, no he probado esto, pero probablemente podría cambiar 'remove_task' a: ' def rename_task (nombre_tarea, new_task_name) @tasks [new_task_name] = @ tasks.delete (nombre_tarea) end' Usted Todavía tendrá que volver a escribir 'db: test: prepare' porque las tareas de prueba seguirán ejecutándose. – mckeed