当前位置:  开发笔记 > 编程语言 > 正文

测试命令行工具的最佳方法是什么?

如何解决《测试命令行工具的最佳方法是什么?》经验,为你挑选了3个好方法。

我有很多命令行实用程序,我们自己编写并经常使用.目前测试它们非常麻烦,因此我们没有像我们那样进行那么多的测试.

我想知道是否有人可以提出好的技巧或工具来做好这类事情.

这是UNIX



1> paxos1977..:

我建议构建命令行工具的代码,以便命令行实用程序是函数和/或类库的客户端.

库函数不是简单地使用std :: cout来打印输出,而是使用默认为std :: cout的ostream引用.在测试时,提供std :: stringstream来收集输出.

最后,使用您最喜欢的单元测试框架,简单地将实用程序的输出与预期结果进行比较.

(我为C++特定的例子道歉......我确信在其他语言中也有办法做类似的事情).



2> Mr. Deathles..:

您可以使用Cram编写类似于交互式shell会话的测试.它具有灵活的测试规范格式,允许您使用Perl正则表达式或类似shell的通配符来匹配输出.Cram将重放测试中的命令,将输出与参考进行比较,并报告差异.



3> avh..:

Aruba是一个Cucumber扩展,用于测试用任何编程语言编写的命令行应用程序.

要使用它,你需要ruby来运行测试,但是aruba的目的是提供一个预定义的步骤定义库,这样你就不需要编写任何ruby代码来创建一个可行的测试套件.(虽然在某些时候你可能会想要写一些ruby来做一些自定义步骤.)

您可以在这里看到使用aruba测试的命令行工具的复杂示例:jingweno/gh

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有