Skip to main content
 首页 » 编程设计

python之使用 pytest 记录成功的测试用例断言

2025年05月04日11Terrylee

当 pytest 测试失败时,它会给我一个很好的描述,说明测试失败的确切位置,以及具体的值。

虽然这对于失败的测试来说真的很棒,但我也想为没有失败的测试获得这份报告。

例如:

    def test_one(): 
        a =  0 
>       assert 0 < a <= 1  # to see what was printed 
E       assert 0 < 0 <= 1 
 
test_sample.py:6: AssertionError 
--------------------------- Captured stdout call --------------------------- 
first 
1 failed in 0.12 seconds 

如果测试没有失败,我还想看看 'a' 的值。

例如:

    def test_one(): 
        a = 0.5 
>       assert 0 < a <= 1  # to see what was printed 
E       assert 0 < 0.5 <= 1 
 
test_sample.py:6: AssertionSuccess 
--------------------------- Captured stdout call --------------------------- 
first 
1 passed in 0.12 seconds 

请您参考如下方法:

我想,第一个测试用例中 a 的值为 0。 那是因为,您指定了,

def test_one(): 
    a=0 

此外,您应该在参数中添加 self 以执行测试。

当我们通过设置 a=0 的值进行测试时,发生的情况是当我们比较 a 是否小于 1 或大于 0 时。两者都给出结果 false。因此,它会报错。

而在第二种情况下,

def test_one(): 
    a=0.5 

当我们比较 a 是小于 1 还是大于 0.5 时会发生什么。两者都给出 true 的结果。因此,它给出了成功通过的测试。

-------- 已编辑-------- 您可以添加记录器以获取记录详细信息。

import logging 
# Your code 
logger = logging.logger() 
logging.debug(a) 

希望对您有所帮助! :)