我正在使用python中的程序,其中打开,编译和运行C程序的.c文件。我有很多程序测试用例,每次运行程序时都需要手动检查。现在大约有15到16个C程序,它们共有大约100个测试用例。那么我应该如何编写python程序,以便在使用python运行C程序后,它会自动加载每个测试用例并将其输出定向到指定的文件?
答案 0 :(得分:1)
您可以采取以下方法:
步骤1:在python程序中将所有C程序的名称及其相应的测试用例存储在数组中。
步骤2:遍历C程序数组,并且对于每个这样的迭代,遍历该C程序的测试用例数组。在此内部迭代中,使用Popen实用程序为C程序触发测试用例。因此,例如C程序就是“应用程序”。和测试用例是' tc'使用以下
tcProcess = subprocess.Popen( ['app','tc']) # assuming tc is going as an argument to app
步骤4:现在等待使用wait()实用程序完成该过程。检查退货代码并按照您的要求进行操作。如果您没有选择为失败的进程中止,那么在下一次迭代中,程序将接收下一个测试用例并重复相同的过程
return_code = tcProcess.wait ()
您也可以在子进程上使用call()方法而不是Popen,它会自动等待调用完成并且不需要wait()。
子流程及其方法的描述可以在这里找到
<https://docs.python.org/2/library/subprocess.html#using-the-subprocess-module>
希望这有帮助。