tri*_*nth 6 testing command-line integration-testing automated-tests command-line-arguments
我正在开发一个有很多标志的命令行实用程序.典型的命令如下所示:
mycommand --foo=A --bar=B --jar=C --gnar=D --binks=E
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,会打印"成功"消息,但我仍然希望针对其他来源(如外部数据库)进行验证,以确保取得实际成功.
我开始创建集成测试,我不确定最好的方法.我主要担心的是:
手动编写单个案例并以单元测试格式验证结果的想法令人生畏.
有没有人知道可用于自动化此类测试的模式?也许甚至试图解决这个问题的软件?如何使用GNU命令行工具测试他们的软件?
我认为这对于您的应用程序来说非常具体。
首先,如何确定应用程序执行是否成功?是结果代码吗?是打印到控制台的东西吗?
对于问题 2,这取决于您如何在应用程序中解析这些标志。大多数时候,标志的顺序并不重要,但在某些情况下却很重要。我希望您不需要测试标志的排列,因为它会添加很多要测试的情况。
在一般情况下,您应该分析每个标志的影响是什么。有可能一个标志不会干扰其他标志,然后只需要测试一次。对于单独使用的标志(例如 --help 或 --version)也是如此。您还需要分析应该为每个标志测试哪些值。通常,您想要尝试每种可能的有效值,以及每种可能的无效值。
我认为可以编写一个简单的 bash 脚本来执行测试,或者使用任何脚本语言(例如 Python)来执行测试。使用嵌套循环,您可以为每个标志尝试可能的值,包括测试无效值以及未设置标志的情况。我将生成一个多维结果矩阵,应对其进行分析以查看结果是否符合预期。
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |