pytest文档49-命令行参数--tb的使用

Posted 上海-悠悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest文档49-命令行参数--tb的使用相关的知识,希望对你有一定的参考价值。

前言

pytest 使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败。
--tb=style 参数可以设置报错的时候回溯打印内容,可以设置参数(auto/long/short/line/native/no)

–tb=style

pytest -h 查看命令行参数,关于 --tb=style 参数的使用方式

>pytest -h

 --tb=style            traceback print mode (auto/long/short/line/native/no).

style 的值可以设置6种打印模式:auto/long/short/line/native/no

–tb=no

先写个简单的pytest用例,让他断言报错

# test_tb.py
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/

def test_01():
    result = "hello"
    expected = "world"
    assert result == expected

命令行执行pytest test_tb.py 此时屏幕上会显示整个用例的回溯信息

test_tb.py F                                                             [100%]

================================== FAILURES ===================================
___________________________________ test_01 ___________________________________

    def test_01():
        result = "hello"
        expected = "world"
>       assert result == expected
E       AssertionError: assert 'hello' == 'world'
E         - hello
E         + world

test_tb.py:8: AssertionError
========================== 1 failed in 0.08 seconds ===========================

加上 --tb=no 参数执行

test_tb.py F                                                             [100%]

========================== 1 failed in 0.05 seconds ===========================

--tb=no 是不显示报错的回溯内容

–tb=line

line 模式使用一行输出所有的错误信息

test_tb.py F                                                             [100%]

================================== FAILURES ===================================
D:\\soft\\kecheng202004\\demo\\test_tb.py:8: AssertionError: assert 'hello' == 'world'
========================== 1 failed in 0.06 seconds ===========================

–tb=short

short 模式显示断言报错的位置,不显示用例前面的代码

test_tb.py F                                                             [100%]

================================== FAILURES ===================================
___________________________________ test_01 ___________________________________
test_tb.py:8: in test_01
    assert result == expected
E   AssertionError: assert 'hello' == 'world'
E     - hello
E     + world
========================== 1 failed in 0.06 seconds ===========================

其它

–tb=auto 有多个用例失败的时候,只打印第一个和最后一个用例的回溯信息
–tb=long 输出最详细的回溯信息
–tb=short 输入assert的一行和系统判断内容
–tb=line 使用一行显示错误信息
–tb=native 只输出python标准库的回溯信息
–tb=no 不显示回溯信息

以上是关于pytest文档49-命令行参数--tb的使用的主要内容,如果未能解决你的问题,请参考以下文章

pytest文档76 - 命令行中神奇的-o参数使用

如何通过命令行在pytest中传递参数

pytest文档10-命令行传参

pytest文档52-命令行参数--setup-show查看fixture的执行过程

pytest文档50-命令行参数--durations统计用例运行时间

24-pytest-allure命令行参数