如何在Pycharm Pro中运行django测试,得到ImproperlyConfigurated和AppRegist



我在PyCharm Pro中运行django测试时遇到问题。

  1. 我可以很好地运行python manage.py runserver
  2. 我能胜任migratemakemigrationsmanage.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.

我已经做了几件事来解决这个问题:

  1. 我在测试文件中放了这个:

    import os os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'(我保证mysite是正确的目录(

  2. 我有一个设置文件和一个wsgi文件,我的wsgi文件确实设置了DJANGO_SETTING_MODULE:

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

    application = get_wsgi_application()

  3. 唯一让我摆脱这个错误的是通过转到Edit Configuations -> Environment -> Environment Variables并在那里添加DJANGO_SETTINGS_MODULE来设置该测试类的配置。这只会给我带来一个不同的错误:

    django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

    此外,我必须为每个测试类执行此操作。我不能在类中运行单独的测试,而是必须在该类中运行整个测试套件。不是一个好的解决方案。。。

  4. 我已经手动(在虚拟环境中(运行了export DJANGO_SETTINGS_MODULE=mysite.settings。这并没有改变任何事情。

所以,我没有主意了,已经遵循了我在So上能找到的所有建议。在Pycharm还有其他事情要做吗?同样,cmdline运行良好,但我真的不想以这种方式运行测试——此外,我不能调试。

编辑:可能值得注意的是,我在服务器运行的同时运行单元测试(这应该没有什么区别(,而且我的python解释器也指向了我的virtualenv中的那个。

尝试打开运行/调试配置窗口(您应该在顶部工具栏中找到它,单击播放/调试按钮附近的下拉菜单和编辑配置(从这里,您应该看到一个包含现有保存配置的列表,其中最后一个元素应该是Templates。在Templates下搜索Django测试。在环境部分,将DJANGO_SETTINGS_MODULE=mysite.settings添加到环境变量中。下次运行运行/调试配置中不存在的测试时,将使用带有设置模块集的模板。

如果我是你,我将删除所有现有的测试配置。此外,我从您的第3点怀疑,您可能配置了python测试,而不是Django测试(这就是为什么您会出现错误django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet,因为Django没有加载(。如果你有,也删除它。应用配置,然后重试以运行测试。

运行测试时,请确保运行的是Django测试,而不是python测试(您应该在运行部分和工具栏的下拉列表中看到测试名称附近的Django徽标(

最新更新