如何在PyCharm中运行测试导致“Model类不声明显式的app_label”错误?

问题描述 投票:0回答:1

我正在使用Django,Python 3.7和PyCharm 2018.3.5。我正在尝试通过右键单击测试名称并选择“运行测试:'测试名称'”在PyCharm中运行测试。这会导致以下错误

RuntimeError: Model class appname.models.Label doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

这是有问题的模型,位于我的models.py文件的顶部...

class Label(models.Model):
    name = models.CharField(max_length=200)

    def __str__(self):
        return self.name

    class Meta:
        unique_together = ("name",)

很奇怪的是,如果我在PyCharm之外运行测试(例如在使用“python manage.py test”的终端命令提示符下),一切运行正常。所以这个问题似乎与PyCharm有些不一致。我不清楚如何进一步解决这个问题。下面是我的项目目录结构......

appname
    __init__.py
    __pycache__
    admin.py
    apps.py
    fixtures
    management
    migrations
    models.py
    services.py
    static
    templates
    tests.py
    views.py
manage.py
templates
venv
appname_project

编辑:我编辑了我的环境变量如下

PYTHONUNBUFFERED=1
DJANGO_DEVELOPMENT=true
DJANGO_SETTINGS_MODULE=appname_project.settings

这是因为我的设置文件是特定于环境的,所以我的开发者的路径是

appname_project/settings/dev.py

但即使添加上述结果也会出现同样的错误。

python django python-3.x testing pycharm
1个回答
1
投票

当使用内置选项进行运行测试时,PyCharm使用自己的test_runner。大多数时候它无法找到qazxsw poi文件。所以你必须明确定义settings.py文件。

  1. 转到右上角,然后从运行配置菜单中选择编辑配置。
  2. 选择运行测试的特定配置。
  3. 单击环境变量。将settingsDJANGO_SETTINGS_MODULE(或您正在使用的任何设置文件的路径)添加为值。
  4. 保存并再次运行。

它现在应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.