zoukankan      html  css  js  c++  java
  • Pytest(13)命令行参数--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用例,让他断言报错

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

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

    ../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 参数执行

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

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

    --tb=line

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

    collecting ... 
    /Users/jkc/PycharmProjects/apiAutomatic/case/test_1.py:15: AssertionError: assert 'hello' == 'world'
    
     case/test_1.py ⨯                                                                                                                                                                                        100% ██████████
    

    --tb=short

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

    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 不显示回溯信息

  • 相关阅读:
    千年不曾看懂《道德经》,直至有了《道德图》!--作者:南山空同
    初探工作流的库表设计
    教你如何快速上手markdown语法,编写技术博客(史上最全最简,用MarkDown写博客)
    面试官:你连RESTful都不知道我怎么敢要你? 文章解析
    Dapper系列 作者:懒懒的程序员一枚
    为何要编写《元灵心经》养、和、消三篇 作者 南山空同
    南山空同《学经》前24章
    ASP.NET Core 2.2 WebApi 系列【九】使用SignalR (作者:tenghao510 ) 学习及内容补充
    Net Core 中WebAPI有关 Session的设置,及获取
    asp.net core系列 WebAPI 作者:懒懒的程序员一枚
  • 原文地址:https://www.cnblogs.com/jiakecong/p/14292362.html
Copyright © 2011-2022 走看看