当其中一个测试失败时,可以在测试正在测试的内容的参数化中添加描述,快速了解测试失败的原因。
有时您不知道测试失败的原因(您必须查看代码)。通过每个测试的描述,您就可以知道。
例如。
@pytest.mark.parametrize( "num1, num2, expect", [
(2, 2, 4), # This test verifies that 2+2 = 4.
])
def test_sum(num1, num2, expect):
calc = Calc()
response = calc.sum(num1, num2)
assert expect == response
Run Code Online (Sandbox Code Playgroud)
如果测试失败,错误消息将显示:
src_test/calc.py::test_sum[19999997-200] FAILED
assert vo_result.code == expected_code
E AssertionError: assert 4 == 3
**The test checks if the numbers add up well.** Message invented
Run Code Online (Sandbox Code Playgroud)
您可以在参数化中定义每个测试的 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
Run Code Online (Sandbox Code Playgroud)
当测试运行时,测试名称将为test_sum[2+2=4]。当测试失败时,您可以查看测试名称并查找哪组参数导致测试失败。
要使单个测试失败,您可以使用 pytest.params。例如:
@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
Run Code Online (Sandbox Code Playgroud)
有关 pytest 参考文档中的参数化 id 的更多信息: https: //docs.pytest.org/en/latest/reference.html#pytest-mark-parametrize
| 归档时间: |
|
| 查看次数: |
3915 次 |
| 最近记录: |