如何使用全局参数跳过python unittest

时间:2015-11-13 17:10:29

标签: python pyqt python-unittest

我在python中有一组单元测试。其中一些使用pyqt打开图形对象,有些只是标准的独立测试。我的目标是自动运行至少不需要打开窗口的测试,因为除非等待用户输入然后失败。

请注意:

  • 我无法删除图形测试(来自项目的约束)
  • 默认情况下,所有测试都应该运行,但只传递一些参数非图形参数将运行
  • 我的测试套件是使用unittest.TestLoader()。discover
  • 构建的

我最好的猜测是将一个全局参数传递给TestSuite,以便每个测试都可以检查该值以了解它是否应该跳过。但在阅读unittest文档后,我找不到办法做到这一点。

我已经意识到这个问题:How To Send Arguments to a UnitTest Without Global Variables,但我原本期望一些单位测试配置。

1 个答案:

答案 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后运行测试