2016-08-17 35 views
0

我有一些测试用例在单独的.py文件中,我想在我创建的模块上测试。所有这些文件都使用我创建的py模块,所有这些py文件都将打印一个预定义的输出(一些数字为几千行)。Python - 如何检查多个py文件的打印输出?

有没有办法运行.py脚本来运行这些其他测试.py脚本并检查输出?我已经看过doctest和unittests,但这些涉及特定的功能,而不是py脚本?

编辑:这些py文件打印输出,而不是返回值。其中一些还利用多线程。

+0

如果你想使用多线程为每个文件创建线程,然后运行这个execfile(“”test.py“,变量),这将运行你的测试脚本,或者你可以做到只有一个线程所有文件存储在目录中,读取带有* .py文件的目录,并将其导入列表或带变量的指令,然后运行它们中的每一个 –

回答

1

试试这个

import glob 
lst = glob.glob("/home/test/*.py") 

for each_file in lst: 
    variables= {} #what ever variables to need run 
    execfile(each_file, variables) 
1

你需要

subprocess.Popen(['python',file_name],universal_newlines=True,stdout=stdout, stderr=stderr)

这些stdout做的是,你会调用这些脚本是什么,stderr都是文件对象,他们将结果写成这些文件。然后,您可以使用sleep()以达到您认为最合适的时间。

然后,您可以打开这些文件并检查结果。

阅读更多关于子过程here