0

我已经部署了一个 Django 应用程序,并希望设置 Heroku CI。我有一套在本地运行的测试。在 heroku CI 测试设置成功,然后测试运行程序失败并显示以下错误日志(缩写):

==================================== ERRORS ====================================

________________________ ERROR collecting test session _________________________

.heroku/python/lib/python3.8/site-packages/_pytest/config/__init__.py:495: in _importconftest

    return self._conftestpath2mod[key]

E   KeyError: PosixPath('/app/.heroku/python/lib/python3.8/site-packages/django_dynamic_fixture/tests/conftest.py')

During handling of the above exception, another exception occurred:

...

.heroku/python/lib/python3.8/site-packages/django/db/models/base.py:112: in __new__

    raise RuntimeError(

E   RuntimeError: Model class django_dynamic_fixture.models_sample_app.Publisher doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

如您所见,此错误源于在本地运行良好的导入模块 (django_dynamic_fixture)。我认为这可能是由于 heroku ci 的配置方式,因此我不知道我能做些什么来解决这个问题。

doesn't declare an explicit app_label...错误可能是由于混合了绝对和相对导入,或者来自django.contrib.sitesdjango 设置文件中缺少的应用程序。但是,由于测试在本地运行,我不确定如何进行。

4

1 回答 1

0

该问题是由使用该ignore选项引起的。而不是使用ignore,而是使用norecursedirs

此外,测试是从该app/目录运行的,因此任何norecursedirs都不应该包含这个目录,而应该只包含它的子目录。例如.heroku,不app/.heroku

于 2020-07-21T13:48:26.787 回答