我想为Django Manager编写一个单元测试.对数据库表执行后端操作的py命令.如何直接从代码中调用管理命令?
我不想从测试中在操作系统的shell上执行命令.py,因为我无法使用使用manage设置的测试环境.py测试(测试数据库、测试虚拟邮箱发件箱等)
我想为Django Manager编写一个单元测试.对数据库表执行后端操作的py命令.如何直接从代码中调用管理命令?
我不想从测试中在操作系统的shell上执行命令.py,因为我无法使用使用manage设置的测试环境.py测试(测试数据库、测试虚拟邮箱发件箱等)
测试这些东西的最佳方式是将所需的功能从命令本身提取到独立的函数或类中.它有助于从"命令执行内容"中抽象出来,并且无需额外要求即可编写测试.
但是,如果由于某种原因不能将逻辑形式命令解耦,您可以使用call_command方法从任何代码中调用它,如下所示:
from django.core.management import call_command
call_command('my_command', 'foo', bar='baz')