我有一些测试用例在单独的.py文件中,我想在我创建的模块上测试。所有这些文件都使用我创建的py模块,所有这些py文件都将打印一个预定义的输出(一些数字为几千行)。Python - 如何检查多个py文件的打印输出?
有没有办法运行.py脚本来运行这些其他测试.py脚本并检查输出?我已经看过doctest和unittests,但这些涉及特定的功能,而不是py脚本?
编辑:这些py文件打印输出,而不是返回值。其中一些还利用多线程。
我有一些测试用例在单独的.py文件中,我想在我创建的模块上测试。所有这些文件都使用我创建的py模块,所有这些py文件都将打印一个预定义的输出(一些数字为几千行)。Python - 如何检查多个py文件的打印输出?
有没有办法运行.py脚本来运行这些其他测试.py脚本并检查输出?我已经看过doctest和unittests,但这些涉及特定的功能,而不是py脚本?
编辑:这些py文件打印输出,而不是返回值。其中一些还利用多线程。
试试这个
import glob
lst = glob.glob("/home/test/*.py")
for each_file in lst:
variables= {} #what ever variables to need run
execfile(each_file, variables)
你需要
subprocess.Popen(['python',file_name],universal_newlines=True,stdout=stdout, stderr=stderr)
这些stdout
做的是,你会调用这些脚本是什么,stderr
都是文件对象,他们将结果写成这些文件。然后,您可以使用sleep()
以达到您认为最合适的时间。
然后,您可以打开这些文件并检查结果。
阅读更多关于子过程here。
如果你想使用多线程为每个文件创建线程,然后运行这个execfile(“”test.py“,变量),这将运行你的测试脚本,或者你可以做到只有一个线程所有文件存储在目录中,读取带有* .py文件的目录,并将其导入列表或带变量的指令,然后运行它们中的每一个 –