在以下示例中,我希望当expecting
= NotImplementedError
时测试失败。
import pytest
def fun():
raise ValueError()
@pytest.mark.parametrize("expecting", [
(ValueError),
(NotImplementedError)
])
def test_something( expecting):
with pytest.raises(ValueError):
fun()
但是,它却通过了:
test_something[ValueError] PASSED
test_something[NotImplementedError] PASSED
为什么会这样,正确的用法是什么?
答案 0 :(得分:1)
您的测试对expecting
无效。您写了with pytest.raises(ValueError):
,所以pytest一直在寻找ValueError
引发的fun()
。也许您是想写with pytest.raises(expecting):
来代替的?