标题中提出的问题可能是XY-Problem 的一个案例,但我无法找到更简洁的描述。我想通过execfile(filename)
在每个脚本上运行来测试许多 python 脚本,然后查看它们是否触发断言/抛出异常。到目前为止一切都很好,但他们中的大多数也开始了一个 gui 与一个语句的构造,让我们说world.show('someString')
。对于自动化测试,我不想看到 gui。如何在不更改脚本本身的情况下抑制 gui?
编辑: 关于评论:本质上,我可以这样做:
import unittest
class TestExamples(unittest.TestCase):
def test_firstExample(self):
execfile('example1.py')
def test_secondExample(self):
execfile('example2.py')
# and many more
if __name__ == '__main__':
unittest.main()
但是a)有两个以上,我不希望为每个示例编写一个测试函数。我希望他们只是在文件夹中进行测试。这可以通过 unittests 解决discover
。并且 b),它们中的大多数以可视化计算结束,就像您使用matplotlib.pyplot.show()
. 我想抑制这种可视化,而不改变示例本身。