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

Ale*_*xis 2 python pyqt python-unittest

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

注意:

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

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

我知道这个问题:如何在没有全局变量的情况下将参数发送到UnitTest,但我本来期望一些单元测试配置.

tab*_*bac 7

您可以使用unittest.skipIf(condition, reason)和环境变量跳过图形测试.

创建一个装饰器,如:

graphical_test = unittest.skipIf(
    os.environ.get('GRAPHICAL_TESTS', False), 'Non graphical tests only'
)
Run Code Online (Sandbox Code Playgroud)

然后使用@graphical_test并在设置后运行测试来注释您的图形测试GRAPHICAL_TESTS=1