【发布时间】:2019-05-25 17:50:39
【问题描述】:
来自 pytest documentation:
@pytest.mark.parametrize 允许在测试函数或类中定义多组参数和夹具。
看起来这意味着pytest.mark.parametrize 可以将测试标记为使用多组夹具运行?我可以找到很多参数化参数的例子,但我不知道如何参数化不同的夹具集。
我认为this answer 很接近,但这实际上只是参数化参数,然后解析测试主体中的不同夹具。
是否可以使用不同的固定装置将测试标记为多次运行?
注意我正在尝试做这样的事情:
import pytest
# some data fixutres
@pytest.fixture()
def data1():
"""Create some data"""
@pytest.fixture()
def data2():
"""Create some different data"""
@pytest.fixture()
def data3():
"""Create yet different data"""
# The tests
@pytest.mark.parametrize('data', [data1, data2])
def test_foo(data):
"""Test something that makes sense with datasets 1 and 2"""
@pytest.mark.parametrize('data', [data2, data3])
def test_bar(data):
"""Test something that makes sense with datasets 2 and 3"""
【问题讨论】:
-
你不能在
parametrize中传递固定装置,见issue #349。在变量中声明数据集并将它们用于参数化。