使用点击选项测试 cli 命令 python
testing cli command with click options python
您好,我正在尝试测试此功能。在 cli.py 我有
import myfunction
import click
@click.command(name="run")
@click.option("--param", required=True, type=int)
@click.option("--plot", required=False, default=False)
def run(param, plot):
myfunction(param, plot)
在我的测试中_cli.py
从 click.testing 导入 CliRunner
从 cli 导入 运行
def test_cli():
kwargs = {"int": 5, "plot": False}
runner = CliRunner()
result = runner.invoke(run, args=kwargs)
assert resutlts.output == ""
我收到以下错误:缺少选项 --param
CliRunner.invoke
采用 命令行参数列表 ,而不是函数参数。
具体需要这样调用:
runner.invoke(run, args=["--param", "5"])
runner.invoke(run, "--param 5")
对于多个参数,您可以使用任一模式:
runner.invoke(run, args=["--param", "5", "6"])
runner.invoke(run, args="--param 5 6")
参考资料
您好,我正在尝试测试此功能。在 cli.py 我有
import myfunction
import click
@click.command(name="run")
@click.option("--param", required=True, type=int)
@click.option("--plot", required=False, default=False)
def run(param, plot):
myfunction(param, plot)
在我的测试中_cli.py
从 click.testing 导入 CliRunner 从 cli 导入 运行
def test_cli():
kwargs = {"int": 5, "plot": False}
runner = CliRunner()
result = runner.invoke(run, args=kwargs)
assert resutlts.output == ""
我收到以下错误:缺少选项 --param
CliRunner.invoke
采用 命令行参数列表 ,而不是函数参数。
具体需要这样调用:
runner.invoke(run, args=["--param", "5"])
runner.invoke(run, "--param 5")
对于多个参数,您可以使用任一模式:
runner.invoke(run, args=["--param", "5", "6"])
runner.invoke(run, args="--param 5 6")