zoukankan      html  css  js  c++  java
  • pytest扫盲16--某个用例失败后,关联的用例标记为xfail

    设计思路:设计用例时,如果用例执行失败,则标记 xfail,所有引用该用例的其他用例,均调用该 xfail 标记

    示例:

    # File  : test_demo_16.py
    # IDE   : PyCharm
    
    import pytest
    
    @pytest.fixture(params=[{'user': 'admin', 'pwd': '1234'}])
    def login(request):
        '''前置条件登录'''
        print("
    正在操作登录,账号:%s, 密码:%s" % (request.param['user'], request.param['pwd']))
        if request.param['pwd'] == '123456':
            print('登录成功')
            return True
        else:
            print('登录失败')
            pytest.xfail(reason='登录失败,标记为xfail')
            return False
    
    class TestLogin:
        def test_1(self, login):
            assert 5 > 6
    
        def test_2(self, login):
            assert 'h' in 'hello'
    
        def test_3(self):
            assert 3 is 3

    当前置条件执行失败时,执行结果:

    E:personalpython38python.exe E:/personal/GitWorkSpace/pytest_basic/main.py
    test_demo_16.py::TestLogin::test_1[login0]
    test_demo_16.py::TestLogin::test_2[login0]
    test_demo_16.py::TestLogin::test_3
    
    正在操作登录,账号:admin, 密码:1234
    登录失败
    x
    正在操作登录,账号:admin, 密码:1234
    登录失败
    x.
    1 passed, 2 xfailed in 0.11s
    
    Process finished with exit code 0

    当前置条件执行成功时,执行结果:

    E:personalpython38python.exe E:/personal/GitWorkSpace/pytest_basic/main.py
    test_demo_16.py::TestLogin::test_1[login0]
    test_demo_16.py::TestLogin::test_2[login0]
    test_demo_16.py::TestLogin::test_3
    
    正在操作登录,账号:admin, 密码:123456
    登录成功
    F
    正在操作登录,账号:admin, 密码:123456
    登录成功
    ..
    ================================== FAILURES ===================================
    __________________________ TestLogin.test_1[login0] ___________________________
    
    self = <pytest_basic.test_demo_16.TestLogin object at 0x000000B010FF80A0>
    login = True
    
        def test_1(self, login):
    >       assert 5 > 6
    E       assert 5 > 6
    
    test_demo_16.py:24: AssertionError
    =========================== short test summary info ===========================
    FAILED test_demo_16.py::TestLogin::test_1[login0] - assert 5 > 6
    1 failed, 2 passed in 0.13s
    
    Process finished with exit code 0
  • 相关阅读:
    mysql GROUP_CONCAT 查询某个字段(查询结果默认逗号拼接)
    mysql中find_in_set的使用
    Libev源码分析07:Linux下的eventfd简介
    Libev源码分析06:异步信号同步化--sigwait、sigwaitinfo、sigtimedwait和signalfd
    Nova中的Hook机制
    Python深入:stevedore简介
    Libev源码分析05:Libev中的绝对时间定时器
    Python深入:setuptools简介
    Libev源码分析04:Libev中的相对时间定时器
    Libev源码分析02:Libev中的IO监视器
  • 原文地址:https://www.cnblogs.com/xiaohuboke/p/13541894.html
Copyright © 2011-2022 走看看