zoukankan      html  css  js  c++  java
  • pytest文档53-命令行实时输出错误信息(pytest-instafail)

    前言

    pytest 运行全部用例的时候,在控制台会先显示用例的运行结果(.或F), 用例全部运行完成后最后把报错信息全部一起抛出到控制台。
    这样我们每次都需要等用例运行结束,才知道为什么报错,不方便实时查看报错信息。
    pytest-instafail 插件可以在运行用例的时候,需实时查看用例报错内容,这样方便跟踪问题。

    --instafail

    执行全部用例,报错内容等用例运行完成才显示出来

    >pytest
    ============================= test session starts =============================
    
    collected 11 items
    
    test_s.py ..                                                             [ 18%]
    test_t.py ...                                                            [ 45%]
    test_x.py .F.F                                                           [ 81%]
    test_y.py ..                                                             [100%]
    
    ================================== FAILURES ===================================
    ___________________________________ test_02 ___________________________________
    
        def test_02():
            a = "hello"
            b = "hello world"
    >       assert a == b
    E       AssertionError: assert 'hello' == 'hello world'
    E         - hello
    E         + hello world
    
    test_x.py:12: AssertionError
    ___________________________________ test_04 ___________________________________
    
        def test_04():
            a = "hello"
            b = "hello world"
    >       assert a not in b
    E       AssertionError: assert 'hello' not in 'hello world'
    E         'hello' is contained here:
    E           hello world
    
    test_x.py:24: AssertionError
    ===================== 2 failed, 9 passed in 1.32 seconds ======================
    

    当用例很多的时候,不方便我们查看具体哪个报错对应哪条用例,加上--instafail参数,方便实时查看报错内容

    >pytest --instafail
    ============================= test session starts =============================
    
    collected 11 items
    
    test_s.py ..                                                             [ 18%]
    test_t.py ...                                                            [ 45%]
    test_x.py .F
    
    ___________________________________ test_02 ___________________________________
    
        def test_02():
            a = "hello"
            b = "hello world"
    >       assert a == b
    E       AssertionError: assert 'hello' == 'hello world'
    E         - hello
    E         + hello world
    
    test_x.py:12: AssertionError
    
    test_x.py .F
    
    ___________________________________ test_04 ___________________________________
    
        def test_04():
            a = "hello"
            b = "hello world"
    >       assert a not in b
    E       AssertionError: assert 'hello' not in 'hello world'
    E         'hello' is contained here:
    E           hello world
    
    test_x.py:24: AssertionError
    
    test_y.py ..                                                             [100%]
    
    ===================== 2 failed, 9 passed in 1.37 seconds ======================
    

    结合--tb=line参数,看起来更直观

    >pytest --instafail --tb=line
    ============================= test session starts =============================
    collected 11 items
    
    test_s.py ..                                                             [ 18%]
    test_t.py ...                                                            [ 45%]
    test_x.py .F
    
    D:	est_x.py:12: AssertionError: assert 'hello' == 'hello world'
    
    test_x.py .F
    
    D:	est_x.py:24: AssertionError: assert 'hello' not in 'hello world'
    
    test_y.py ..                                                             [100%]
    
    ===================== 2 failed, 9 passed in 1.30 seconds ======================
    
  • 相关阅读:
    MD5 Message Digest Algorithm in Visual Basic 6
    遍历指定文件夹的指定格式的文件并且copy到指定的文件夹下面
    宝宝的成长脚印8/17
    儿歌童谣两首
    office2003之資料編輯列的角字顯示7/10
    宝宝的成长脚印8/27
    宝宝的成长脚印7/30
    宝宝的成长脚印7/3
    LED手电筒真不咋滴8/27
    液晶显示器右边出现黑条7/7
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/13626256.html
Copyright © 2011-2022 走看看