您可以在参数化中定义每个测试的 id。 Id 附加到测试名称后。默认情况下,参数化id是参数的组合。
@pytest.mark.parametrize( "num1, num2, expect", [
(2, 2, 4)], ids = ["2+2=4"])
def test_sum(num1, num2, expect):
calc = Calc()
response = calc.sum(num1, num2)
assert expect == response
当测试运行时,测试名称将为test_sum[2+2=4]
。
当测试失败时,您可以查看测试名称并查找哪组参数导致测试失败。
要使单个测试失败,您可以使用 pytest.params。例如。:
@pytest.mark.parametrize( "num1, num2, expect", [
(2, 2, 4), pytest.param(2,3,9, marks=pytest.mark.xfail)], ids = ["2+2=4", "failing"])
def test_sum(num1, num2, expect):
calc = Calc()
response = calc.sum(num1, num2)
assert expect == response
有关 pytest 参考文档中的参数化 id 的更多信息:https://docs.pytest.org/en/latest/reference.html#pytest-mark-parametrize https://docs.pytest.org/en/latest/reference.html#pytest-mark-parametrize