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

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

推荐答案

测试这些东西的最佳方式是将所需的功能从命令本身提取到独立的函数或类中.它有助于从"命令执行内容"中抽象出来,并且无需额外要求即可编写测试.

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

from django.core.management import call_command

call_command('my_command', 'foo', bar='baz')

Django相关问答推荐

如果密码在Django中未被散列,则对其进行散列

我无法在Django模板中使用Get_Foo_Display

try 在 django 中发送验证邮箱,出现错误

使用OuterRef过滤器获取Django记录的最大值

如何在 django 的列表中查找所有对象作为对象?

设置 SECURE_HSTS_SECONDS 可以不可逆转地 destruct 您的网站?

如何解决 AssertionError: .accepted_renderer not set on Response in django and ajax

try 编辑/创建时,特定模型的 Django 管理员挂起(直到超时错误)

如何从 json 模式创建表单?

Django:通过manage.py使用服务器和gunicorn等其他服务器之间的区别.哪个更好?

验证 Django 模型对象的正确方法?

Django判断字段是否为空?

Django 自定义管理器 - 如何仅返回登录用户创建的对象?

Django,如何从模型表单的 Select 字段中删除空白 Select ?

Heroku - 在 Django 应用程序中处理静态文件

Django ModelChoiceField optgroup 标签

升级到 Django 1.8 后提供的固定默认值

找不到 msguniq.确保您安装了 GNU gettext 工具 0.15 或更新版本. (Django 1.8 和 OSX ElCapitan)

如何将本地文件分配给 Django 中的 FileField?

左加入 Django ORM