我正在编写一个名为
很多相关问题的解决方法都来源于文件本身,但我如何在不进行任何修改的情况下,在外部运行文件时抑制输出呢?
目前我所做的是:
这种方法可以屏蔽图形,但即使程序出现错误也不会抛出任何异常。我也不确定它在做什么。它是将所有图形附加到Qt4中还是当该脚本完成时Figure将从内存中移除?
理想情况下,我想运行每个.py文件并捕获其stdout和stderr,然后使用退出条件来报告stderr并失败测试。然后当我运行nosetests时,它将运行程序的examples文件夹并检查它们是否都运行正常。
test_examples.py
的文件来测试一组Python示例的执行情况。我目前使用glob
来解析文件夹,然后使用subprocess
来执行每个Python文件。问题在于,其中一些文件是绘图文件,它们会打开一个Figure
窗口,导致程序被暂停,直到关闭该窗口。很多相关问题的解决方法都来源于文件本身,但我如何在不进行任何修改的情况下,在外部运行文件时抑制输出呢?
目前我所做的是:
import subprocess as sb
import glob
from nose import with_setup
def test_execute():
files = glob.glob("../*.py")
files.sort()
for fl in files:
try:
sb.call(["ipython", "--matplotlib=Qt4", fl])
except:
assert False, "File: %s ran with some errors\n" % (fl)
这种方法可以屏蔽图形,但即使程序出现错误也不会抛出任何异常。我也不确定它在做什么。它是将所有图形附加到Qt4中还是当该脚本完成时Figure将从内存中移除?
理想情况下,我想运行每个.py文件并捕获其stdout和stderr,然后使用退出条件来报告stderr并失败测试。然后当我运行nosetests时,它将运行程序的examples文件夹并检查它们是否都运行正常。