Vous vous demandez simplement s'il y a un moyen de lancer des tests de rails sans laisser tomber la base de données. Je ne fais actuellement que l'exécution des tests d'unité et je suis à l'aide de la commande Rake suivante pour le faire: Merci pour l'aide à l'avance! P>
Juste au cas où cela est pertinent: P>
Test de Rake: Unités Code>. P>
6 Réponses :
Après avoir fait des recherches, j'ai constaté qu'il n'y a pas de moyen de faire cela. Les tâches de test de test supprimeront toujours la base de données, même lorsque vous fournissez l'option En utilisant le lecture via le Ruby sur Rails Guides pour tester , il décrit ce que certaines de ces tâches de râteau signifient. Celui à payer une attention particulière à l'attention est le recréer la base de données de test de la
Schema.rb actuel P>
BlockQuote> Donc, même si je devais exécuter les tests de l'unité, un par un comme Bohdan le suggère, la tâche Rake serait toujours recréer la base de données. Pas la réponse que j'espérais, mais ce n'est plus un problème. P> La raison pour laquelle je demandais de commencer était parce que je n'avais pas accès à une autre base de données à utiliser pour les tests. J'utilisais donc ma base de données de développement pour les tests. Mais depuis lors, j'ai pu obtenir une autre base de données dédiée aux tests. P> merci quand même Bohdan! J'apprécie l'aide! P> p> TEST = CODE> STROND> AS Bohdan suggère.
- TRACE code> strong> option, cela peut être prouvé. Voici la sortie: p>
DB: Test: charger code> strong> tâche, que vous voyez sur la 7ème ligne à partir du bas de la sortie sous
** Exécutez dB: test: charge code> strong>. Les guides disent ce qui suit sur cette tâche: p>
Heureux de l'entendre. Votre base de données de test devrait être effacée à chaque fois que vous exécutez des tests, sinon vos tests seront inexacts.
Pourriez-vous ne pas écrire une tâche de râteau personnalisée que le singe a patché le Rake DB: Test: Charger la tâche pour ne rien faire? P>
Il s'agit d'un post plutôt ancien qui fait que le singe corrigeait les tâches de purge / chargement primordial: http: // www.pervasivecode.com/blog/2007/09/22/making-rails-raketest-not-drop-Your-pgsql-Database/ P>
Des réponses similaires peuvent être trouvées ici: Stackoverflow.com/q/24785428/680464 ---- et ici:
Pour ceux qui recherchent un moyen de sauter le comportement par défaut des rails, essayez d'ajouter ceci à votre RakeFile:
Rake::Task["db:test:prepare"].clear Rake::Task["db:test:load"].clear Rake::Task["db:test:purge"].clear
dans Rails 5 (et éventuellement versions), commencez simplement la ligne suivante dans SPEC / Rails_Helper.rb CODE>:
ActiveRecord::Migration.maintain_test_schema!
Cela devrait vraiment être la réponse acceptée maintenant.
Pour les rails 5.2 Ce problème peut être modifié paramètre gérer_test_schema code> à
FALSE code> dans
test / test_helper.rb code> avant Importation
Rails / Test_Help code>:
rails / test_help code> vérifiera la valeur de
gérer_test_schema code> pour décider si elle doit déposer / créer / migrer la base de données de test ou non. p> p>