【问题标题】:Django unit test suite "--functions=" couldn't be emptyDjango 单元测试套件“--functions=”不能为空
【发布时间】:2017-06-05 12:32:03
【问题描述】:

我正在将 Django 应用程序从版本 1.10.7 升级到 1.11.2
升级后,runserver 命令运行良好,但是当我尝试运行 unit test suite 时出现以下错误:

CommandError: Option `--functions=...` couldn't be empty

要运行单元测试套件,我使用以下命令:

python src\main\manage.py test --noinput

如您所见,我没有使用任何--function 参数,这与我在升级之前使用的命令相同。
如果我运行指定要运行的文件的测试套件,我会遇到同样的情况。
我也尝试运行管理命令的帮助功能,但没有显示--functions 参数。
我对这个问题有点困惑,我在文档和发行说明中都没有找到关于这个错误的任何信息。

有谁知道这个错误是如何产生的以及如何修复它?

我正在运行 Django 1.11.2 和 Python 2.7

提前致谢

【问题讨论】:

  • 你看到的--functions 参数几乎肯定不是来自Django。 CommandError(可能)来自django.core.management.base。你有custom management commands吗?
  • 是的,你是对的,参数和错误信息都来自自定义命令。但是为什么会这样呢?我的意思是,仅在 django 1.11.2 中?我正在尝试运行完整的测试套件...
  • 可能不是升级造成的。您完全确定这适用于 Django 1.10 吗?在任何情况下,我们都需要查看自定义命令以及调用它的任何测试以进一步提供帮助。
  • 是的,我确定。引发此错误的自定义命令称为“检查”,因此可能名称的选择不是一个好的,因为我看到有一个 django-admin 检查命令
  • 啊,这可能是问题所在。但是 django-admin check 是在 Django 1.10 中添加的;我不确定为什么从 1.10.7 升级到 1.11 会成为问题。无论如何,请尝试重命名您的管理命令,看看您的测试是否成功运行。

标签: python django python-2.7 unit-testing


【解决方案1】:

看起来您有一个名为 checkcustom management commandone of Django's built-in commands 冲突。无论出于何种原因,manage.py test 正在调用您的自定义命令而不是内置命令。

将您的自定义命令重命名为不冲突的名称应该可以解决问题。

【讨论】:

    猜你喜欢
    • 2011-08-30
    • 2023-03-21
    • 2017-07-19
    • 2019-01-02
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多