通过Python在运行时为C程序运行测试用例

1 投票
1 回答
840 浏览
提问于 2025-04-18 18:42

我正在用Python写一个程序,这个程序可以打开一个C语言的.c文件,然后编译并运行它。我有很多测试用例,每次运行这个程序的时候都需要手动检查。现在大约有15到16个C程序,它们加起来有大约100个测试用例。那么我应该怎么写Python程序,让它在运行C程序后,自动加载每个测试用例,并把输出结果保存到指定的文件里呢?

1 个回答

1

你可以按照以下步骤来操作:

第一步:在一个Python程序中,把所有C程序的名字和对应的测试用例存储在数组里。

第二步:遍历这个C程序的数组,对于每一个C程序,再遍历它的测试用例数组。在这个内部循环中,使用Popen工具来运行C程序的测试用例。举个例子,如果C程序叫做'app',测试用例叫做'tc',你可以使用以下代码:

tcProcess = subprocess.Popen( ['app','tc']) # assuming tc is going as an argument to app

第四步:现在使用wait()工具等待这个过程完成。检查返回的代码,根据你的需求继续。如果你不选择在过程失败时中止,那么在下一次循环中,程序会选择下一个测试用例,重复同样的过程。

return_code = tcProcess.wait ()

除了Popen,你也可以使用subprocess的call()方法,它会自动等待调用完成,这样就不需要使用wait()了。

关于subprocess及其方法的详细说明可以在这里找到:

 <https://docs.python.org/2/library/subprocess.html#using-the-subprocess-module>

希望这对你有帮助。

撰写回答