You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何测试带Python Click选项的CLI命令,解决Missing option --param报错

CLI测试报错Missing option --param修复方案

错误原因

你的测试代码存在三处问题直接触发报错:

  • 参数字典键名不匹配:CLI定义的必填参数名为param,但你写的字典键为int,Click无法识别到--param的传值,直接触发参数缺失报错
  • 参数传递方式错误:CliRunner.invoke的args参数不直接接收字典格式的参数,仅支持参数列表格式
  • 变量名笔误:定义的返回值变量为result,断言时错写为resutlts,会额外触发NameError

修复后的测试代码

你可以任选以下两种传参方式中的一种:

方式1:传参数列表(和命令行输入格式一致)

from click.testing import CliRunner
from cli import run

def test_cli():
    runner = CliRunner()
    result = runner.invoke(run, args=["--param", "5", "--plot", "False"])
    # 优先断言执行成功,再校验输出
    assert result.exit_code == 0
    assert result.output == ""

方式2:直接传关键字参数(写法更简洁)

from click.testing import CliRunner
from cli import run

def test_cli():
    runner = CliRunner()
    # 无需指定args参数,直接将CLI参数作为关键字传入即可
    result = runner.invoke(run, param=5, plot=False)
    assert result.exit_code == 0
    assert result.output == ""

注意:如果你的myfunction方法存在标准输出内容,断言result.output == ""会失败,请根据实际业务逻辑调整断言规则。

内容的提问来源于stack exchange,提问作者abdellah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:09:05