首页 > 解决方案 > pytest 在断言错误后将测试标记为 PASSED

问题描述

我正在尝试使用pytest编写测试。我有一个服务可以注册一个带有事件名称和回调函数的侦听器。在一段时间内,它会生成数据并调用将其作为参数传递的回调。基本上我需要在回调中评估一些断言,但即使断言失败pytest也表明测试通过了。

def mytest():
    service = MyService()

    def on_data(data):
        assert False

    def on_end():
        print('All done')

    service.on('data', on_data)
    service.on('end', on_end)

    service.start()

使用 运行此程序时pytest,我得到:

ERROR assert False
Traceback [...]
    assert False
AssertionError: assert False

All done
PASSED

============================== 1 passed in 10.67s ==============================

为什么测试标记为通过?

标签: pythontestingpytest

解决方案


推荐阅读