133 votes

Comment charger des données de db:seed dans la base de données test automatiquement ?

Je suis tenter d’utiliser le nouveau mode standard de chargement des données de semences dans les Rails 2.3.4+, la `` tâche de râteau.

Je suis de chargement des données fixes, qui est nécessaires pour mon application vraiment fonctionne correctement.

Ce qui est la meilleure façon d’obtenir le `` tâche s’exécute avant les épreuves, donc les données sont préremplies ?

133voto

ryanb Points 11043

Le râteau tâche surtout juste des charges le script. Donc juste exécuter ce fichier pour charger les données.

Où placer qui dépend de quelle infrastructure de test vous utilisez et si vous voulez qu’il soit chargé avant chaque essai, ou une seule fois au début. Vous pouvez le placer dans un appeler ou en un fichier.

87voto

Eugene Bolshakov Points 1292

Je dirais que l'on

Parce que db:test:load n’est pas exécutée si vous avez config.active_record.schema_format = : sql (db:test:clone_structure est)

17voto

Nick M Points 161

Mettre quelque chose comme ceci dans lib/tasks/test_seed.rake devrait invoquer la tâche de semences après db:test:load :

3voto

jondahl Points 111

Nous faisons appel db:seed dans le cadre du db:test : préparer, avec :

``

De cette façon, les données de semences sont chargées une seule fois pour la série de tests entière et pas une seule fois par classe de test.

3voto

alexpls Points 905

Ajouter à la tâche de râteau n’a pas fonctionné pour moi. Si j’ai préparé la base de données avec `` et ensuite entré dans la console au sein de l’environnement de test, toutes mes graines étaient là. Cependant, les graines n’ont pas persisté entre mes tests.

Ajouter `` à ma méthode d’installation a bien fonctionné, cependant.

J’aimerais obtenir ces graines pour charger automatiquement et persistent, mais je n’ai pas trouvé un moyen de le faire encore !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X