我在python中有一组单元测试。其中一些使用pyqt打开图形对象,有些只是标准的独立测试。我的目标是自动运行至少不需要打开窗口的测试,因为除非等待用户输入然后失败。
请注意:
我最好的猜测是将一个全局参数传递给TestSuite,以便每个测试都可以检查该值以了解它是否应该跳过。但在阅读unittest文档后,我找不到办法做到这一点。
我已经意识到这个问题:How To Send Arguments to a UnitTest Without Global Variables,但我原本期望一些单位测试配置。
答案 0 :(得分:7)
您可以使用unittest.skipIf(condition, reason)
和环境变量来跳过图形测试。
创建一个装饰器,如:
graphical_test = unittest.skipIf(
os.environ.get('GRAPHICAL_TESTS', False), 'Non graphical tests only'
)
然后使用@graphical_test
注释图形测试,并在设置GRAPHICAL_TESTS=1
后运行测试