Je travaille sur un projet Django où tous mes cas de test d'unité fonctionnaient parfaitement. p>
Ass Bientôt alors que j'ai introduit une deuxième base de données, tous mes cas de test qui hériter d'une TESTCASE sont cassés. À ce stade, je n'ai construit aucun cas de test pour cette deuxième base de données, mais mon routeur fonctionne bien. P>
Quand j'exécute les tests, je reçois l'erreur, P>
"KeyError:" Supports_Transactions "" P>
Il me semble que vous essayez de vérifier que toutes les bases de données que j'ai configurées des transactions de support, mais la deuxième base de données n'est jamais créée. P>
Des idées sur la manière d'avoir le script de test pour construire la deuxième base de données. P>
4 Réponses :
Oui, j'ai eu un problème similaire ... mon correctif était de définir "Supports_Transactions": true pour chacune des connexions de base de données dans le fichier de paramètres. Je ne sais pas si c'est la bonne façon de le réparer, mais cela a fonctionné pour moi. P>
Travaille pour moi. Édité mes paramètres / local.py et ajouté "'Supports_Transactions': true," à l'entrée unique "par défaut" à l'intérieur de mon dictionnaire de bases de données.
'Supports_Transactions': True a travaillé pour moi aussi. Cependant, j'ai une sorte de configuration de DB multiple étrange à l'aide de routeurs de base de données. @ user298404: Comment votre configuration de DB multiple est-elle ressemblant? P>
ps. Pardon; Pas assez de points pour commentaires ... p>
Voici une configuration de DB multiple que j'ai actuellement en production: db_primary_master, db_primary_slave, db_mail_master et db_mail_slave sont toutes des constantes de chaîne afin qu'elles puissent être utilisées dans mon routeur de base de données. de J'espère que cela aide! P> p>
Indice: db_primary_master = 'Par défaut' P>
Je me rends compte que c'est un très vieux fil, mais je l'ai rencontré avec le même problème et ma résolution ajouté le drapeau multi_db = true code> à mon témoignage, par exemple:
class TestThingWithMultipleDatabases(TestCase):
multi_db = True
def test_thing(self):
pass
Django Docs: docs.djangoproject.com/fr/ 2.0 / Thèmes / Test / Outils / ...
Multi_db Code> a été obsolète depuis Django 2.2, en utilisant TESTCASE.DATABASES à la place.