【问题标题】:RuntimeError: Model class nose.util.C doesn't declare an explicit app_labelRuntimeError:模型类 nose.util.C 未声明显式 app_label
【发布时间】:2019-03-17 22:38:33
【问题描述】:

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

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

【问题讨论】:

  • 我无法发表评论,但我在stackoverflow.com/a/56723920/1305080 添加了我的答案,因为听起来这实际上并没有解决,而且这个和那个可能与我的。

标签: django nose


【解决方案1】:

您可能有一个名称中包含 Test 的模型。鼻子是包裹类和混淆 Django。

jwhitlock on github explains,

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

另一种选择是使用nose.tools 中的@nottest 来装饰类:

from nose.tools import nottest

@nottest
class Testacean(Model):
    ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-29
    • 2019-08-28
    • 2016-05-25
    • 2020-05-16
    • 2017-09-05
    • 2017-08-06
    • 2020-08-13
    • 2023-02-18
    相关资源
    最近更新 更多