我正在使用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
但即使添加上述结果也会出现同样的错误。
当使用内置选项进行运行测试时,PyCharm使用自己的test_runner
。大多数时候它无法找到qazxsw poi文件。所以你必须明确定义settings.py
文件。
settings
与DJANGO_SETTINGS_MODULE
(或您正在使用的任何设置文件的路径)添加为值。它现在应该工作。