Ich arbeite an einer Django-Anwendung. Wir verwenden Sellerie, um Schreibvorgänge in unsere Mongo-Datenbank zu schreiben. Ich versuche, einen Funktionstest (mit Selen) für eine Funktion zu schreiben, die etwas in Sellerie in die Warteschlange stellt.
Das Problem ist, dass Sellerie in die Haupt-Mongo-Datenbank statt in die Testdatenbank schreibt. Wie kann ich meine Funktionstests so einrichten, dass sie mit einer Instanz von Sellerie arbeiten, die in die Testdatenbank schreibt?
Wir verwenden 'django_nose.NoseTestSuiteRunner'
als TEST_RUNNER
.
UPDATE :
Ich war nicht in der Lage, herauszufinden, wie man eine andere Sellerie für die Tests verwendet, aber ich habe einen Weg gefunden, Sellerie für die Funktionstests zu umgehen.
In meinem settings.py
:
Dies ahmt das Verhalten von AsyncResult
nach, ohne dass beim Ausführen der funktionalen Testsuite irgendetwas durch eine Nachrichtenwarteschlange gesendet wird. (Siehe Ссылка für weitere Informationen.)
Diese Lösung ist wahrscheinlich nicht ideal für Funktionstests, weil sie eine der Anwendungsschichten ausschneidet.
Ich schlage vor, dass Sie sich LiveServerTestCase
wenn Sie einen automatisierten Test-Client zum Ausführen von Funktionstests verwenden.
Stellen Sie dann sicher, dass Sie über ein separates Einstellungsmodul verfügen, mit dem Sie Ihre Tests durchführen können, um Sellery richtig zu konfigurieren, damit Sie Ihre Projektdatenbank für den Transport .
Tags und Links python django mongodb selenium django-celery