【问题标题】:Assert in for loop in Python在 Python 中的 for 循环中断言
【发布时间】:2021-09-28 15:58:29
【问题描述】:

我有一个变量列表,我必须将其声明为 0。现在代码必须是 pytest 框架的一部分并与魅力报告兼容。由于我使用的断言只声明了 1 个测试用例,所以无论如何我都会将每个断言检查为差异 scn

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

当我运行上面的代码时,它作为 1 个测试用例传递出去。除了指定每个元素之外,还有其他方法让 allure/pytest 将每个断言视为差异测试用例吗?

【问题讨论】:

  • 为什么要将每个断言视为单独的测试用例?
  • 我认为subTest 能够为每个断言提供不同的报告。
  • 除非您知道自己在做什么,否则不要覆盖 python 内置关键字/函数,例如 list。它可能/将会导致问题,以及变量命名不佳。
  • @Jab 列表词只是一个例子。

标签: python loops pytest assert allure


【解决方案1】:

选项 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 如果您想在一个测试中获得结果并且不希望测试在每次断言后终止并给出所有断言的集体结果,您可以使用 @987654321 实现软断言@也是。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    相关资源
    最近更新 更多