【发布时间】:2014-04-01 20:01:44
【问题描述】:
我正在用 Python 编写命令行界面。它使用 readline 模块来提供命令历史记录和完成。
虽然在交互模式下一切正常,但我想对完成功能运行自动化测试。我幼稚的第一次尝试涉及使用文件作为标准输入:
my_app < command.file
命令文件包含一个选项卡,希望它能调用完成功能。没运气。进行测试的正确方法是什么?
【问题讨论】:
-
我可能错了,但我相信 readline 会检测
stdin是否是终端(而不是从文件或管道重定向),如果不是,它将禁用所有交互功能t. -
@DenilsonSá:你可能有一些东西。制表符显然是文件输入的一部分,但它不会导致调用完成函数。
-
您可以编写一个测试来调用您的完成函数并验证输出。它更像是一个单元测试,而不是一个端到端的测试。不完全是你要求的,但已经是一些东西了。 (而且,是的,我也很好奇如何测试交互式文本程序,例如使用 readline 或 ncurses 时)
标签: python readline tab-completion