【发布时间】:2021-11-21 20:45:42
【问题描述】:
假设我想用几个 pytest 标记运行相同的测试代码。一种解决方案是复制粘贴带有标记的测试:
@pytest.mark.A
def test_a():
# same
# code
...
@pytest.mark.B
def test_b():
# same
# code
...
我发现的一个“hack”是参数化一个虚拟参数并使用 pytest.param 应用不同的标记:
@pytest.mark.parametrize("_", [
pytest.param(None, marks=pytest.mark.A),
pytest.param(None, marks=pytest.mark.B),
])
def test(_):
# same
# code
...
但它很笨拙并且添加了未使用的参数。有没有更简单的方法?
【问题讨论】:
-
您的意思是您想触发一次
test,它会运行两次,还是您希望在使用A标记或B标记运行测试时运行测试? -
我想运行两次测试,每个标记一次。如果我只选择带有标记
A的测试,那么只运行一次。