嗨,我有這個函式,我想測驗一下。在 cli.py 中我有
import myfunction
import click
@click.command(name="run">)
@click. option("--param", required=True, type=int>)
@click.option(span class="hljs-string">"--plot", required=False, default=False>)
def run(param, plot)。
myfunction(param, plot)
在我的test_cli.py
中from click.testing import CliRunner from cli import run
def test_cli() 。
kwargs = {"int"/span>: 5, " plot": False}。
runner = CliRunner()
result = runner.invoke(run, args=kwargs)
assert resutlts.output == ""。
我得到以下錯誤。缺少選項 --param
uj5u.com熱心網友回復:
CliRunner.invoke需要一個命令列引數串列,而不是函式引數。
具體來說,你需要這樣呼叫它:
runner.invoke(run, args=["-param"/span>, "5"/span>])
runner.invoke(run, "-param 5")
對于多個引數,你可以使用兩種模式:
runner.invoke(run, args=["-param"/span>, "5"/span>, "6"/span>] )
runner.invoke(run, args="-param 5 6")
參考文獻
https://click.palletsprojects.com/en/8.0.x/testing/轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/330180.html
標籤:
