我构建了一个python命令行应用程序,它在两种模式下运行:
在交互模式下,它使用pythonCMDModule打开一个交互式shell。在
示例:
在命令行中运行plcli
,打开其交互模式
(命令行)>;执行
从输入文件中读取命令并逐个执行。在
示例:
在命令行中运行plcli input_file.txt
,它执行命令
逐行并将结果输出到标准输出。
如何为这个cli应用程序编写单元和集成测试。我已经探讨了pytest-console-scripts和{a3},但它们似乎不是最佳或最佳实践。在
请建议接受/最佳实践库或用法来测试python命令行应用程序。在
最重要的原则是组织你的代码,这样复杂度就存在于那些易于直接单元测试的函数(或方法)中,换句话说,就是那些不处理大型程序的命令行或交互性质的函数中。然后将这些函数粘到一个薄薄的外层,该层提供命令行或交互功能。这种胶水很简单,可能不值得费心去测试。如果它确实需要任何测试,通常可以使用少量基本的端到端执行来完成(例如,对于命令行场景,使用Python的
subprocess
模块以用户完全相同的方式运行程序的测试)。在更多细节可以在加里·伯恩哈特的精彩演讲中找到。在
相关问题 更多 >
编程相关推荐