小编典典

如何直接从测试驱动程序调用自定义 Django manage.py 命令?

all

我想为对数据库表执行后端操作的 Django manage.py 命令编写单元测试。如何直接从代码调用管理命令?

我不想从 tests.py 在操作系统的 shell 上执行命令,因为我无法使用使用 manage.py test
设置的测试环境(测试数据库、测试虚拟电子邮件发件箱等…)


阅读 147

收藏
2022-06-29

共1个答案

小编典典

测试此类事情的最佳方法 - 从命令本身提取所需的功能到独立函数或类。它有助于从“命令执行的东西”中抽象出来,并在没有额外要求的情况下编写测试。

但是,如果您由于某种原因无法解耦逻辑表单命令,您可以使用call_command方法从任何代码中调用它,如下所示:

from django.core.management import call_command

call_command('my_command', 'foo', bar='baz')
2022-06-29