如何使用全局参数跳过 python 单元测试

How to skip python unittest with a global parameter

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

注意:

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

我知道这个问题:How To Send Arguments to a UnitTest Without Global Variables,但我希望有一些单元测试配置。

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

像这样创建一个装饰器:

graphical_test = unittest.skipIf(
    os.environ.get('GRAPHICAL_TESTS', False), 'Non graphical tests only'
)

然后在设置 GRAPHICAL_TESTS=1

后用 @graphical_test 和 运行 注释你的图形测试