寻找基于可执行的测试框架

Looking for executable-based test framework

本文关键字:测试 框架 可执行 寻找      更新时间:2023-10-16

我继承了一个可以工作的旧程序,但是源代码非常难看。我需要在不改变功能的情况下使代码更好。这个程序接受一个输入文件,执行各种计算,然后生成一个输出文件。

程序当前是用C/c++组合编写的。首先,我将使它保持一个c++程序,但在不久的将来,我将把它或它的一部分转换为Python。

很自然,最初的开发人员没有花时间创建单元测试,或任何其他类型的测试。因为我想确保我的修改没有改变程序的行为,所以我想从创建一些测试开始。这些不是单元测试,而是整个程序的测试。

我希望每个测试都接受一个输入文件和一组命令行参数,运行程序并将输出(输出文件、stdout输出和stderr输出)与预期输出进行比较。

因为我需要同时支持c++和Python,所以测试框架需要与语言无关——它应该能够运行可执行文件,收集标准输出和标准错误,并将它们以及另一个文件与预先录制的输出进行比较。

我找不到一个可以这样做的测试框架。有这样的东西吗?

嗯,在我的脑海中,您当然可以使用subprocess或一些类似的模块在python中运行带有所需输入的可执行文件,解析输出,然后使用unittest模块设置期望的输出类型