【发布时间】:2020-10-22 01:09:50
【问题描述】:
我正试图以一种很好的方式解决这个问题,但似乎无法让它发挥作用。
假设我有以下业务逻辑要测试:
class MyClass:
def __init__(self, value):
self.value = value
def execute(self):
return self.value
以及以下测试用例:
test_cases = [
{
'name': "assert True",
'data': True,
'expected': False
}, {
'name': "assert False",
'data': False,
'expected': True
}
]
然后我想编写以下测试套件:
def idfn(val):
return val.get('name')
@pytest.fixture(params=test_cases, ids=idfn)
def my_class(request):
return MyClass(request.param['data'])
@pytest.fixture(params=test_cases, ids=idfn)
def expected(request):
return request.param['expected']
class Test():
def test_execute(self, my_class, expected):
assert my_class.execute() == expected
如何避免 pytest 执行所有可能的测试用例组合?我只想生成 2 个测试,因为我有 2 个测试用例,但 PyTest 正在生成 4 个。
【问题讨论】:
标签: python-3.x pytest