2010-10-07 5 views
0

J'écris une application de test que j'utilise pour tester le reste de ma base de code. Ce que je voudrais être capable de faire pour cela est lorsque je teste en utilisant cette commande manage.py, change automatiquement pour être connecté à une base de données différente. Y at-il un bon moyen de le faire?Modification de la base de données active dans django

Répondre

1

Django crée automatiquement et laisse tomber une base de données de test pour vous. Sauf indication contraire (nous verrons comment dans une seconde) ce sera test_ + <the name of the database in the settings file>. Donc, si votre settings utilise la base de données foo, les tests seront exécutés contre test_foo. Aucune modification de configuration n'est nécessaire pour cela.

Si vous souhaitez exécuter des tests sur une base de données personnalisée (plutôt que sur test_foo), vous pouvez le faire en modifiant le TEST_NAME setting. Vous pouvez ajouter TEST_NAME à chaque dictionnaire dans DATABASES.

+0

Je ne suis pas en train d'exécuter la suite de tests. J'essaie de pouvoir passer du test local au test aws. – ocoutts

0

Créer une version d'essai de settings.py et spécifiez sur la ligne de commande lorsque vous exécutez votre test:

$ python manage.py test --settings=settings_test 
+0

Dois-je modifier mon fichier manage.py pour refléter cela? Mon application ne semble pas préparée à l'avoir comme paramètre. – ocoutts

+0

Non, il vous suffit de créer un nouveau fichier de paramètres et de spécifier le nom du module. Il est préférable d'avoir le fichier 'from imports import *' pour conserver tous vos paramètres normaux. Voir 'python manage.py help'. – Seth

Questions connexes