在测试中检查 CLI 的退出代码

Checking the exit code of a CLI in a test

我正在为命令行工具编写自动化测试。本质上,我想使用各种选项调用 CLI 并测试退出代码 and/or 输出。

我的测试是这样的:

from mymodule.cli_tool import main

def test_args(capfd):
    with pytest.raises(SystemExit) as e:
        main(args=['--junk_option'])
    # check the exit code to make sure it is non-zero
    ???

如何查看退出代码?

您需要检查 value.code,像这样:

assert e.value.code != 0