Ich möchte in meiner Django-App Umgebungsvariablen für Tests setzen können, um ausgeführt werden zu können. Zum Beispiel sind meine Ansichten auf mehrere API-Schlüssel angewiesen.django Einstellung Umgebungsvariablen in Unittest Tests
Es gibt Möglichkeiten zu override settings during testing, aber ich möchte nicht, dass sie in settings.py
als ein Sicherheitsproblem definiert sind.
Ich habe in meiner Setup-Funktion versucht, diese Umgebungsvariablen zu setzen, aber das funktioniert nicht, um der Django-Anwendung die Werte zu geben.
class MyTests(TestCase):
def setUp(self):
os.environ['TEST'] = '123' # doesn't propogate to app
Als ich vor Ort testen, habe ich einfach eine .env
Datei, die ich mit
foreman start -e .env web
laufen die os.environ
mit Werten versorgt. Aber in Djangos unittest.TestCase
hat es keinen Weg (den ich kenne), das zu setzen.
Wie kann ich das umgehen?
Haben Sie versucht, mit [EnvironmentVarGuard] (https://docs.python.org/2/library/test.html#test.test_support.EnvironmentVarGuard)? – schillingt
Ja, das war die richtige Antwort! – lollercoaster