使用 py.test 我经常生成测试,其中一些测试用例预计会失败。如何将它们标记为 xfail?如果我把它@py.test.mark.xfail
放在测试函数上,这意味着它的所有实例都是 xfail。如果我py.test.xfail()
在测试中执行它实际上未通过测试,而不仅仅是将其标记为 xfail。我可以用 metafunc 做些什么来添加这个标记吗?
例如
# code - function with a bug :)
def evenHigherThanSquare(n):
return n**2
# test file
def pytest_generate_tests(metafunc):
data = [
(2, 4),
(3, 10), # should be xfail
(4, 16),
(5, 26), # should be xfail
]
for input, expected in data:
if metafunc.function is test_evenHigherThanSquare:
metafunc.addcall(funcargs=dict(input=input, expected=expected))
def test_evenHigherThanSquare(input, expected):
assert evenHigherThanSquare(input) == expected