【发布时间】:2019-11-02 21:12:04
【问题描述】:
我在 PyCharm Pro 中运行 django 测试时遇到问题。
- 我可以正常运行
python manage.py runserver。 - 我可以
migrate、makemigrations、manage.py test就好了。实际上,manage.py的所有内容都按预期运行。
每当我在 PyCharm 中运行测试时(通过单击绿色运行按钮),我都会收到此错误:
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
我已经做了几件事来解决这个问题:
-
我有,在我的测试文件中,把这个:
import os os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'(mysite是我保证的正确目录) -
我有一个设置文件和一个 wsgi 文件,而我的 wsgi 文件确实设置了 DJANGO_SETTINGS_MODULE:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")application = get_wsgi_application() -
唯一让我摆脱这个错误的方法是通过转到
Edit Configuations -> Environment -> Environment Variables并在那里添加DJANGO_SETTINGS_MODULE来设置该测试类的配置。这只会给我一个不同的错误:django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.另外,我必须为每个测试类执行此操作并且我不能在该类中运行单个测试,而是必须在该类中运行整个测试套件班级。不是一个好的解决方案...
我已经手动(在 virtualenv 中)运行
export DJANGO_SETTINGS_MODULE=mysite.settings。这并没有改变任何东西。
所以,我没有想法,并遵循了我能找到的关于 SO 的所有建议。在 Pycharm 中我还有其他事情要做吗?同样,cmdline 工作正常,但我真的不想以这种方式运行测试 - 另外,我无法调试。
编辑:值得注意的是,我在服务器运行时正在运行单元测试(这应该没有什么区别),而且我的 python 解释器也指向了我的 virtualenv 中的那个。
【问题讨论】:
标签: python django pycharm django-testing django-tests