我继承了一个有效的旧程序,但它的源代码非常难看。我需要在不改变功能的情况下使代码更好。该程序采用输入文件,执行各种计算并生成输出文件。
该程序目前以C / C ++组合编写。起初我将把它保留为C ++程序,但在不远的将来,我将把它或部分内容转换为Python。
当然,原始开发人员没有花时间创建单元测试或任何其他类型的测试。由于我想确保我的修改没有改变程序的行为,我想首先创建一些测试。这些不是单元测试,而是整个程序的测试。
我希望每个测试都获取一个输入文件和一组命令行参数,运行程序并将输出(输出文件,stdout输出和stderr输出)与预期输出进行比较。
由于我需要同时支持C ++和Python,因此测试框架需要与语言无关 - 它应该能够运行可执行文件,收集stdout和stderr并将它们以及另一个文件与预先录制的输出进行比较。
我找不到可以做到这一点的测试框架。有什么相似的吗?我宁愿不自己开发一个。
答案 0 :(得分:1)
好吧,在我的脑海中,您当然可以使用子进程或类似的模块在python中使用所需的输入运行可执行文件,解析输出,然后使用unittest模块设置对您的输出类型的期望&# 39;重新寻找。