Chaque fois que je veux exécuter Rake Test, la tâche DB: Test: Se préparer est en cours d'appel et il reconstruit ma base de données d'environnement de test à partir de schéma.rb et de migrations. Ce que j'aimerais faire, c'est désactiver l'appel de dB: Test: Préparez-vous lorsque je veux tester une application Rails. Est-il possible sans modifier des rails gemmes? P>
3 Réponses :
Il existe un plugin qui prend en charge cela pour vous: Supprimer_Rake_Task . Voici un exemple d'utilisation rapide:
namespace :db do namespace :test do override_task :prepare do; end end end
Voici une solution que j'ai vue autour:
dans votre fibrefile: p> dans lib / tâches / db / test / test.rake.rake >:: p>
J'aime ça. Avec cela, vous n'avez pas à installer de plugin et cela fonctionne bien. Cependant, qu'en est-il si je veux utiliser la méthode de préparation à l'avenir? Est-il possible de garder cela seulement le retirer de la file d'attente de râteau?
Dans ce cas, je suppose que vous devriez utiliser cette méthode pour réécrire Test: unités code>,
Test: Fonctions code> et
test: intégration code> qu'ils n'hérent pas à partir du
dB: test: préparez la tâche code>.
En réalité, je n'ai pas testé cela, mais vous pouvez probablement changer supprimer_task code> à:
def rename_task (nom_serveur, new_task_name) @tasks [NEATSASK_Name] = @ Tâches.Delete (Task_Name) Fin Code> Vous devrez toujours réécrire
dB: test: préparer code> car les tâches de test vont toujours l'exécuter.
Mckeed C'est ce que le plug-in mentionné dans une autre réponse fait. Mais je n'ai pas besoin de garder l'ancienne tâche autour.
Pour une version plus ancienne des rails - vous pouvez placer rake :: Tâche ['dB: test: préparer']. Effacer code> à la fin de votre rakeFile P>