在 Python 中的 for 循环中断言

Assert in for loop in Python

我有一个必须断言为 0 的变量列表。现在代码必须是 pytest 框架的一部分并且与 allure 报告兼容。由于我使用的断言只声明了 1 个测试用例,所以我检查每个断言作为差异 scn?

list = [0,1,0,1,0,0,0]
for x in list:
    assert x == 0

当我 运行 上述代码时,它作为 1 个测试用例通过。有没有其他方法而不是指定每个元素,让 allure/pytest 将每个断言视为差异测试用例?

选项 1这是您问题的解决方案

import pytest

list = [0,1,0,1,0,0,0]
@pytest.mark.nondestructive
@pytest.mark.parametrize("item",list)
def test_stackquestion(item):
    assert item == 0

选项 2 如果您想在一个测试中获得结果并且不希望测试在每个断言后终止并给出您可以实施的所有断言的集体结果软断言也使用 delayed assert