我有一个可以返回非零退出代码的 Django 自定义命令。我想测试这个命令,但是对 sys.exit(1) 的调用退出了测试运行器。

是否有一种“正确”的方法可以在自定义 Django 命令中分配退出代码?

我的代码目前看起来像这样:

# Exit with the appropriate return code
if len(result.failures) > 0 or len(result.errors) > 0:
    sys.exit(1)

最佳答案

我选择在测试中模拟对 sys.exit() 的调用,以防止它退出测试运行器:

from mock import patch
with patch('sys.exit') as exit_mocked:
    call_command(...)
    exit_mocked.assert_called_with(1)

关于python - 如何在能够测试的同时在自定义 Django 命令上返回非零退出代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35584199/

10-15 10:19