You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pytest的teardown夹具中打印测试用例的执行状态

在pytest fixture的teardown阶段打印测试用例执行结果

可以通过pytest内置的request fixture获取测试节点的执行状态,在fixture的teardown逻辑中实现结果打印。以下是完整实现方案:

实现代码

import pytest

# 定义自动应用的fixture,所有测试用例都会触发
@pytest.fixture(autouse=True)
def log_test_result(request):
    yield  # 此处为测试用例执行阶段
    # Teardown阶段:获取测试用例信息与执行结果
    test_case_name = request.node.name
    # rep_call属性存储测试执行后的结果,outcome字段为状态(passed/failed/skipped等)
    test_outcome = request.node.rep_call.outcome
    # 打印自定义结果信息
    print(f"\n{test_case_name} {test_outcome}")

# 测试用例1:执行失败
def test_1():
    assert 1 == 2

# 测试用例2:执行通过
def test_2():
    assert 1 == 1

运行说明

执行测试时需要加上-s参数(禁用输出捕获),才能看到teardown阶段的打印内容:

pytest -s test_file.py

输出示例

test_1 failed
test_2 passed

关键细节说明

  • autouse=True:让fixture自动作用于所有测试用例,无需手动在测试函数中引用
  • request.node:代表当前执行的测试节点,包含测试用例的名称、执行结果等元数据
  • request.node.rep_call.outcome:存储测试执行的最终状态,常见值包括passed、failed、skipped、xfailed等,可根据需求扩展判断逻辑

内容的提问来源于stack exchange,提问作者stack overflow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:01:17