RuntimeError:模型类nose.util.C未声明显式app_label

rra*_*nza 1 django nose

仅当我运行单元测试时,是什么导致我的 django 应用程序出现此错误?为什么它认为nose.util.C是一个模型?

RuntimeError:模型类nose.util.C 未声明显式app_label,并且不在INSTALLED_APPS 中的应用程序中,或者在加载其应用程序之前导入。

rra*_*nza 6

您可能有一个名称中带有 Test 的模型。Nose 正在包装类并混淆 Django。

github 上的 jwhitlock 解释道,

我目前的猜测是,nose 正在检测一个它认为应该运行测试的模型类 - 也许是因为它被命名为 Test、TestFoo 或 FooTest,并将其包装在 portant_class 中,这吓坏了 Django 的模型加载器。如果是这种情况,如果您重命名该类,或者不执行 Python 路径操作,或者添加 __test__= False 类声明,则可能会起作用。

另一种选择是使用@nottestfromnose.tools来装饰类:

from nose.tools import nottest

@nottest
class Testacean(Model):
    ...
Run Code Online (Sandbox Code Playgroud)