Pytest(13)命令行参数–tb的使用

2022-09-16 11:13:38 浏览数 (1)

前言

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

–tb=style

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

代码语言:javascript复制
> pytest -h
--tb=style            traceback print mode (auto/long/short/line/native/no).

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

–tb=no

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

代码语言:javascript复制
def test_01():
    result = "hello"
    expected = "world"
    assert result == expected

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

代码语言:javascript复制
../test_1.py::test_01 FAILED                                             [100%]
case/test_1.py:11 (test_01)
hello != world

Expected :world
Actual   :hello
<Click to see difference>

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

../test_1.py:15: AssertionError


Assertion failed


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

加上 --tb=no 参数执行

代码语言:javascript复制
collecting ... 

 case/test_1.py ⨯                                                                                                                                                                              100% ██████████

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

–tb=line

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

代码语言:javascript复制
collecting ... 
/Users/jkc/PycharmProjects/apiAutomatic/case/test_1.py:15: AssertionError: assert 'hello' == 'world'

 case/test_1.py ⨯                                                                                                                                                                                        100% ██████████

–tb=short

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

代码语言:javascript复制
collecting ... 

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― test_01 ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
case/test_1.py:15: in test_01
    assert result == expected
E   AssertionError: assert 'hello' == 'world'
E     - world
E       hello

 case/test_1.py ⨯                                                                                                                                                                                        100% ██████████

其他

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166347.html原文链接:https://javaforall.cn

0 人点赞