如何测试Python命令行应用程序

2024-10-02 16:23:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我构建了一个python命令行应用程序,它在两种模式下运行:

  1. 在交互模式下,它使用pythonCMDModule打开一个交互式shell。在

    示例:

    在命令行中运行plcli,打开其交互模式

    (命令行)>;执行

  2. 从输入文件中读取命令并逐个执行。在

    示例:

    在命令行中运行plcli input_file.txt,它执行命令 逐行并将结果输出到标准输出。

如何为这个cli应用程序编写单元和集成测试。我已经探讨了pytest-console-scripts和{a3},但它们似乎不是最佳或最佳实践。在

请建议接受/最佳实践库或用法来测试python命令行应用程序。在

注意:我没有使用任何python cli框架,比如clintclick


Tags: 文件命令行命令gttxt应用程序示例input
1条回答
网友
1楼 · 发布于 2024-10-02 16:23:36

最重要的原则是组织你的代码,这样复杂度就存在于那些易于直接单元测试的函数(或方法)中,换句话说,就是那些不处理大型程序的命令行或交互性质的函数中。然后将这些函数粘到一个薄薄的外层,该层提供命令行或交互功能。这种胶水很简单,可能不值得费心去测试。如果它确实需要任何测试,通常可以使用少量基本的端到端执行来完成(例如,对于命令行场景,使用Python的subprocess模块以用户完全相同的方式运行程序的测试)。在

更多细节可以在加里·伯恩哈特的精彩演讲中找到。在

相关问题 更多 >