gpt4 book ai didi

python - 如何使用 Python 测试 ncurses 应用程序?

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:45 25 4
gpt4 key购买 nike

我们使用 Python 构建了 cli-app。有些部分需要ncurses,所以我们使用npyscreen。我们已经使用 pytest 成功测试了应用程序的大部分内容(在模拟和其他东西的帮助下)。但我们陷入了“如何测试”的困境ncurses 代码部分'

采用我们的 ncurses 代码中提示用户回答的部分:

"""
Generate text user interface:
example :
fields = [
{"type": "TitleText", "name": "Name", "key": "name"},
{"type": "TitlePassword", "name": "Password", "key": "password"},
{"type": "TitleSelectOne", "name": "Role",
"key": "role", "values": ["admin", "user"]},
]
form = form_generator("Form Foo", fields)
print(form["role"].value[0])
print(form["name"].value)
"""


def form_generator(form_title, fields):
def myFunction(*args):
form = npyscreen.Form(name=form_title)
result = {}
for field in fields:
t = field["type"]
k = field["key"]
del field["type"]
del field["key"]

result[k] = form.add(getattr(npyscreen, t), **field)
form.edit()
return result

return npyscreen.wrapper_basic(myFunction)

我们尝试了很多方法,但都失败了:

  • stringIO 捕获输出:失败
  • 将输出重定向到文件:失败
  • hecate:失败
    • 我认为只有运行整个程序才有效
  • pyautogui
    • 我认为只有运行整个程序才有效

这是我所拥有的完整步骤 tried

所以我使用的最后一件事是使用patch。我修补那些功能。但缺点是这些函数内的语句是仍未经过测试。因为它只是断言硬编码的返回值。

我找到npyscreen docs用于写作测试。但我不完全明白。这里只有一个例子。

提前谢谢您。

最佳答案

我没有看到 python docs 中提到它,但您可以使用screen-dump Curses 库的功能是捕获信息进行分析。

关于python - 如何使用 Python 测试 ncurses 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52359950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com