首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl6:基于终端的程序的自动化测试

Perl6:基于终端的程序的自动化测试
EN

Stack Overflow用户
提问于 2017-12-26 15:58:55
回答 3查看 176关注 0票数 2

我如何自动化与命令行程序的交互,这些命令行程序公开Perl 6的文本终端界面以进行测试?

EN

回答 3

Stack Overflow用户

发布于 2017-12-26 20:16:16

如果您想使用Perl6自动执行或测试控制台应用程序,我认为您可以使用NativeCallexpect库进行交互。一旦安装了expect,man libexpect将显示其API文档,尽管访问文档的方式(例如手册页名称)可能会因包分发而有所不同。

Expect有一些API可以启动程序,等待文本出现在(模拟的)控制台上(以“期望”文本),并将文本发送到控制台(以模拟键入)。最常见的用例是自动化需要输入密码的程序。Expect通常是脚本化的--它是一个解释器--但是没有理由不从更高级的编程语言中使用它。

编辑:我回答错了问题。OP对使用Perl 6测试Perl 6模块很感兴趣。也就是说,使用expect启动第二个使用该模块的Perl 6解释器仍然是测试应用程序的最强大、最严格的方法。您不需要知道模块使用什么类型的终端库,因为expect应该与几乎所有的终端库兼容。您可以向子流程的STDIN管道发送文本,但这比不上可以从expect获得的子流程(控制台)通信。我不知道是否有一种方法可以劫持模块使用的任何终端库并直接与其通信。

票数 5
EN

Stack Overflow用户

发布于 2018-01-10 02:21:44

如果它只是一个普通的界面,你可以简单地run程序并收集输出。目前正在实验的Testo moduleis-run例程。您可以直接使用它,或者如果实验状态很麻烦,将guts of it复制到您自己的帮助器例程中。

票数 1
EN

Stack Overflow用户

发布于 2019-03-20 21:33:16

看看基于Sparrow6 Task Check Language - Perl6的领域特定语言来验证文本输出。我用它做了很多终端应用测试。

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

https://stackoverflow.com/questions/47975599

复制
相关文章

相似问题

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