Moda 2022-08-31 14:15 采纳率: 0%
浏览 26

断言失败了,测试用例却显示通过。

问题遇到的现象和发生背景

添加了检查点,然后执行测试用例。assert断言失败了,但是用例执行成功

问题相关代码,请勿粘贴截图

class Checkpoint():
def init(self):
self.flag = 0
def greater_than(self,a,b,msg=None):
try:
assert a>b
if msg:
print(msg)
except:
print(f'断言失败,预期结果a > b,实际结果:a={a},b={b}')
self.flag+=1
def del(self): ####收尾,自动回收
if self.flag>0:
assert False,'由于检查点错误,测试用例执行失败'
else:
print('为什么else一个会被执行?')

def test_04():
a = 2
b = 4
Checkpoint().greater_than(a,b)

运行结果及报错内容

checkpoint.py::test_04 PASSED [100%]断言失败,预期结果a > b,实际结果:a=2,b=4

======================== 1 passed, 1 warning in 0.02s =========================

我想要达到的结果

断言失败,则该条测试用例执行失败

  • 写回答

2条回答 默认 最新

  • 梦里逆天 2022-08-31 14:45
    关注

    你写的也不对啊

    
    class Checkpoint():
        def init(self):
            self.flag = 0
    
        def greater_than(self, a, b, msg=None):
            try:
                assert a > b, 'a必须大于b'
                if msg:
                    print(msg)
            except:
                print(f'断言失败,预期结果a > b,实际结果:a={a},b={b}')
    
        def dele(self):
            assert self.flag > 0, '由于检查点错误,测试用例执行失败'
    
    
    def test_04():
        a = 2
        b = 4
        Checkpoint().greater_than(a, b)
    
    
    test_04()
    # 断言失败,预期结果a > b,实际结果:a=2,b=4
    
    评论

报告相同问题?

问题事件

  • 创建了问题 8月31日