关于:pytest pytest_terminal_summary钩子函数回调使用场景

钩子函数说明

pytest_terminal_summary 是一个Pytest钩子函数,它在测试执行完成后被调用,可以用于汇总测试结果并输出到终端。

要回调 pytest_terminal_summary 钩子函数,需要在Python文件或插件中定义一个同名的函数。函数的参数包括 config (表示当前的Pytest配置对象)和 terminalreporter(表示终端报告器对象)。可以在这个函数中实现自己的逻辑,例如输出一些统计信息、生成HTML报告等。

conftest.py示例:

# content of conftest.py

def pytest_terminal_summary(terminalreporter, exitstatus, config):
    # 统计测试结果
    passed_count = len(terminalreporter.stats.get('passed', []))
    failed_count = len(terminalreporter.stats.get('failed', []))
    skipped_count = len(terminalreporter.stats.get('skipped', []))

    # 输出测试结果到终端
    terminalreporter.write_sep('-', 'test result summary')
    terminalreporter.write_line(f'Passed: {passed_count}')
    terminalreporter.write_line(f'Failed: {failed_count}')
    terminalreporter.write_line(f'Skipped: {skipped_count}')

在上面的代码中,我们定义了一个 pytest_terminal_summary函数,它接受 terminalreporter、exitstatus和config 三个参数。在函数中,我们使用 terminalreporter 对象输出测试结果到终端。运行Pytest时,就会自动回调该函数并输出测试结果。

自定义方法示例:

pytest_terminal_summary函数,并通过pytest_plugins 变量将该文件作为插件加载到Pytest中 这种方式同样可以实现自定义测试结果汇总逻辑。

# content of my_summary.py

def pytest_terminal_summary(terminalreporter, exitstatus, config):
    # 统计测试结果
    passed_count = len(terminalreporter.stats.get('passed', []))
    failed_count = len(terminalreporter.stats.get('failed', []))
    skipped_count = len(terminalreporter.stats.get('skipped', []))

    # 输出测试结果到终端
    terminalreporter.write_sep('-', 'test result summary')
    terminalreporter.write_line(f'Passed: {passed_count}')
    terminalreporter.write_line(f'Failed: {failed_count}')
    terminalreporter.write_line(f'Skipped: {skipped_count}')

在上面的代码中,我们定义了一个“my/_summary.py文件,并在其中定义了 pytest_terminal_summa ry函数。要将该文件作为插件加载到Pytest中,需要在该文件所在目录下创建一个名为

plugin.py 的文件,并在其中添加以 下内容:

pytest_plugins = ['my_summary']

运动pytest时,既可以使用该自定的测试结果汇总逻辑:

$ pytest
=========================== test session starts ===========================
collected 2 items

test_foo.py ..                                                     [100%]

--------------------------- test result summary ----------------------------
Passed: 2
Failed: 0
Skipped: 0
============================ 2 passed in 0.01s ============================

值得注意的是,如果你想要将自定义的测试结果汇总逻辑应用于多个测试项目中,可以将 my_summar y·py文件和 plugin.py 文件放在一个独立的Python包中,并在其他测试项目中安装和引用该包即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值