我有一组 python 单元测试。其中一些使用 pyqt 打开图形对象,一些只是标准的独立测试。我的目标是至少自动运行不需要打开窗口的测试,因为除非它会等待用户输入然后失败。
注意:
- 我无法删除图形测试(来自项目的约束)
- 默认情况下所有测试都应该运行,但是传递一些参数只有非图形测试才会运行
- 我的测试套件是使用 unittest.TestLoader().discover 构建的
我最好的猜测是将一个全局参数传递给 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_test
注释您的图形测试,并在设置 GRAPHICAL_TESTS=1
后运行您的测试
关于python - 如何使用全局参数跳过 python unittest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33698209/