2017-05-30 8 views
0

ローカル、デベロッパー、ステージ、プロダクションなど、アプリケーションの環境によって設定が異なります。したがって、ローカルでアプリを実行すると、パラメータとして設定がmanage.pyに渡されます。実際にすべての設定が正しく初期化されています(例:python3 manage.py runserver 0.0.0.0:8080 --settings=myapp.settings.local)。 DEBUGTrueです。これは設定ファイルに設定されているため、defaultsettings.pyにあるようにFalseではありません。テストの実行時にDjangoの設定が読み込まれない

ただし、python3 manage.py test --settings=myapp.settings.localでテストを実行しようとすると、DEBUGの値はfalseに設定されます。つまり、defaultsettings.pyからロードされます。なぜそれが起こり、どうすればこの問題を解決できますか?

+1

チェック(https://docs.djangoproject.com/en/dev/topics/testing/tools/ [これは任意の助けである]の場合#overriding-settings)。 – errata

+2

DEBUGは唯一の影響を受けていますか?私は、テストランナーが自動的にそれをTrueに自動的に設定することを確信しています。 –

+0

私は質問を投稿した後、同じ情報を少し見つけました。 – Ibolit

答えて

0

テストでは、あなたがこのような設定をインポートすることを確認してください: from django.conf import settings

0

は、あなたのテストを実行する場合、すべての設定は、彼らが自分の設定しているだけのようであることをDEBUG以外を提出判明します。 DEBUGは、可能な限り本番環境に近い設定にするために、常にFalseに設定されています。私はこの記事次終わった

Detect django testing mode

import sys TESTING = sys.argv[1:2] == ['test']

関連する問題