3
CliRunner
列出了沒有參數在其documentation中提供上下文。如何將ctx(上下文)傳遞給CliRunner?
以下內容應被視爲最低工作示例。 真正的問題有點不同。 可以通過將點擊裝飾功能移動到其自己的功能來解決測試覆蓋問題。然後,點擊功能將變得幾乎無用。
import click
from click.testing import CliRunner
class Config():
def __init__(self):
self.value = 651
@click.command()
@click.pass_context
def print_numberinfo(ctx):
if not hasattr(ctx.obj, 'value'):
ctx.obj = Config()
click.echo(ctx.obj.value)
def test_print_numberinfo():
ctx = click.Context(print_numberinfo, obj = Config())
ctx.obj.value = 777
runner = CliRunner()
# how do I pass ctx to runner.invoke?
result = runner.invoke(print_numberinfo)
assert result.output == str(ctx.obj.value) + '\n'