可以在 pytest 中断言有第三种状态 - 不是失败,不是成功,而是警告或“弱”失败?

问题描述 投票:0回答:2

我有来自不同公司的库存物品。 而且我不知道如何处理 numberOfItems == 0

如果我这样做 断言 numberOfItems > 0 然后,如果库存中没有商品,它就会失败。

但是我不希望它失败而是显示警告 - 这可能是问题也可能不是问题,但不应该是部署的障碍让我们说。

断言的结果不是黑色/白色而是灰色。

pytest assert
2个回答
1
投票

我不知道这是否是您要找的,但它在类似情况下帮助了我:

if numberOfItems == 0:
     pytest.skip("No items found")

会有一个未通过的输出,但不会失败。


0
投票

最好的方法可能是将其作为警告传递到日志中。除非您更改日志记录,否则这些将显示在输出中。

假设您在 conftest 中设置了日志记录:

import logging

log = logging.getLogger(__name__)

def test_your_code():
    # other test code
    if numberOfItems == 0:
        log.warning("No items in stock for this company")

否则,如果您需要更大声,请使用 skip。

import pytest

def test_your_code():
    # other test code
    if numberOfItems == 0:
        pytest.skip("No items in stock for this company")
© www.soinside.com 2019 - 2024. All rights reserved.