首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python测试ncurse

Python测试ncurse
EN

Stack Overflow用户
提问于 2015-06-12 20:28:35
回答 2查看 1.4K关注 0票数 9

我在开发终端应用程序。我想知道如何测试用ncurses制作的终端用户界面。有谁有这种测试的经验吗?

  • 到目前为止,我最好的机会是用捕获标准输出测试应用程序,并将其与应有的内容进行比较。但我担心,我永远无法为每一个终端的大小,文本颜色代码(256位,24位)创建类似的情况,等等.
  • 测试的一种方法是模拟键盘,但我如何测试视觉行为呢?

我对这个问题一无所知.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-12 20:54:46

比较屏幕输出是很困难的,因为ncurses只更新屏幕上被修改的部分,使用光标寻址和其他方法。相反,比较屏幕的内容已知的ncurses在不同时间点是最好的方法。

您可以使用伊斯特尔构造一个屏幕转储来获取文本(但忽略了属性,如颜色)。ncurses的Python接口也有 (但假设字符为8位)。

最好使用普特温,但是(直到最近)以二进制形式保存窗口。即将到来的ncurses6使用的是一个转储,这可能是不同的。调用者看不到这种变化(因为putwin/getwin总是将文件格式视为秘密),原则上可以在ncurse5的构建中打开。为此,你可能需要建立自己的诅咒。

票数 1
EN

Stack Overflow用户

发布于 2015-06-13 02:50:34

您可能希望签出的程序是一个名为期望的TCL脚本。它旨在自动化基于文本的交互。

根据维基百科:

Expect用于自动控制交互式应用程序,如telnet、ftp、passwd、fsck、rlogin、tip、ssh等。Expect使用伪终端(Unix)或模拟控制台(Windows),启动目标程序,然后像人一样通过终端或控制台接口与其通信。

我设想您可以设置一个Expect脚本来运行一个标准的交互,并报告整个过程中的任何交互问题。

我怀疑任何程序都不能测试美学(例如,它对眼睛的外观,等等)。但是您可能可以测试界面是否适合屏幕,以及不同的窗口是否不重叠等等。通过在PyCurses函数中添加一个装饰器,可以跟踪各个部分的尺寸,并报告任何重叠或问题。

有关Python装饰器的更多信息,请参阅本文:理解Python解码器在12个简单的步骤!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30811680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档