【发布时间】:2020-06-16 08:54:27
【问题描述】:
我已经知道我们可以使用标记,然后用 -m 调用 pytest 来只执行某些测试
我的问题是:有没有办法标记测试,以便在调用 pytest 时不添加任何 -m 就不会执行该测试?
编辑:
我在想这样的事情:
- 用特殊标记测试(我不知道是否存在,这就是为什么这个问题)将测试
thespecialtest.py标记为@pytest.mark.notselect
然后像往常一样运行测试:pytest 将排除该测试。
- 如果我想专门运行该测试,我可以明确地进行
pytest thescpecialtest.py
我知道最好和最简单的方法就是在调用 pytest 时使用 -m 但我想问一下是否有不需要这样做的选项
【问题讨论】:
-
你可以使用
@unittest.skip注解来忽略一个测试,但是我不认为你可以在不再次删除注解的情况下重新启用它。 -
所以你想在运行
pytest时默认忽略测试?您可以将命令行参数放入pytest.ini,这样您就不必每次都输入它们,因此使用addopts = --ignore test_module.py运行pytest与显式调用pytest --ignore test_module.py相同。 -
您也可以通过编程方式排除测试,但这在 IMO 中有点过头了。
标签: pytest