• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Pytest中skip skipif跳过用例详解

    前言

    @pytest.mark.skip

    跳过执行测试用例,有可选参数reason:跳过的原因,会在执行结果中打印

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    """
    __title__  = 
    __Time__   = 2020/4/9 13:49
    __Author__ = 小菠萝测试笔记
    __Blog__   = https://www.cnblogs.com/poloyy/
    """
    import pytest
    
    
    @pytest.fixture(autouse=True)
    def login():
        print("====登录====")
    
    
    def test_case01():
        print("我是测试用例11111")
    
    
    @pytest.mark.skip(reason="不执行该用例!!因为没写好!!")
    def test_case02():
        print("我是测试用例22222")
    
    
    class Test1:
    
        def test_1(self):
            print("%% 我是类测试用例1111 %%")
    
        @pytest.mark.skip(reason="不想执行")
        def test_2(self):
            print("%% 我是类测试用例2222 %%")
    
    
    @pytest.mark.skip(reason="类也可以跳过不执行")
    class TestSkip:
        def test_1(self):
            print("%% 不会执行 %%")
    

    执行结果

    知识点

    pytest.skip()函数基础使用

    作用:在测试用例执行期间强制跳过不再执行剩余内容

    类似:在Python的循环里面,满足某些条件则break 跳出循环

    def test_function():
        n = 1
        while True:
            print(f"这是我第{n}条用例")
            n += 1
            if n == 5:
                pytest.skip("我跑五次了不跑了")
    

    执行结果

    pytest.skip(msg="",allow_module_level=False)

    当allow_module_level=True时,可以设置在模块级别跳过整个模块

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    """
    __title__  = 
    __Time__   = 2020/4/9 13:49
    __Author__ = 小菠萝测试笔记
    __Blog__   = https://www.cnblogs.com/poloyy/
    """
    import sys
    import pytest
    
    if sys.platform.startswith("win"):
        pytest.skip("skipping windows-only tests", allow_module_level=True)
    
    
    @pytest.fixture(autouse=True)
    def login():
        print("====登录====")
    
    
    def test_case01():
        print("我是测试用例11111")
    

    执行结果

    collecting ...
    Skipped: skipping windows-only tests
    collected 0 items / 1 skipped
    ============================= 1 skipped in 0.15s ==============================

    @pytest.mark.skipif(condition, reason="")

    作用:希望有条件地跳过某些测试用例

    注意:condition需要返回True才会跳过

    @pytest.mark.skipif(sys.platform == 'win32', reason="does not run on windows")
    class TestSkipIf(object):
        def test_function(self):
            print("不能在window上运行")
    

    执行结果

    collecting ... collected 1 item
    07skip_sipif.py::TestSkipIf::test_function SKIPPED                       [100%]
    Skipped: does not run on windows
    ============================= 1 skipped in 0.04s ==============================

    跳过标记

    # 标记
    skipmark = pytest.mark.skip(reason="不能在window上运行=====")
    skipifmark = pytest.mark.skipif(sys.platform == 'win32', reason="不能在window上运行啦啦啦=====")
    
    
    @skipmark
    class TestSkip_Mark(object):
    
        @skipifmark
        def test_function(self):
            print("测试标记")
    
        def test_def(self):
            print("测试标记")
    
    
    @skipmark
    def test_skip():
        print("测试标记")
    

    执行结果

    collecting ... collected 3 items
    07skip_sipif.py::TestSkip_Mark::test_function SKIPPED                    [ 33%]
    Skipped: 不能在window上运行啦啦啦=====
    07skip_sipif.py::TestSkip_Mark::test_def SKIPPED                         [ 66%]
    Skipped: 不能在window上运行=====
    07skip_sipif.py::test_skip SKIPPED                                       [100%]
    Skipped: 不能在window上运行=====
    ============================= 3 skipped in 0.04s ==============================

    pytest.importorskip( modname: str, minversion: Optional[str] = None, reason: Optional[str] = None )

    作用:如果缺少某些导入,则跳过模块中的所有测试

    参数列表

    pexpect = pytest.importorskip("pexpect", minversion="0.3")
    
    
    @pexpect
    def test_import():
        print("test")
    

    执行结果一:如果找不到module

    Skipped: could not import 'pexpect': No module named 'pexpect'
    collected 0 items / 1 skipped

    执行结果一:如果版本对应不上

    Skipped: module 'sys' has __version__ None, required is: '0.3'
    collected 0 items / 1 skipped

    到此这篇关于Pytest中skip skipif跳过用例详解的文章就介绍到这了,更多相关skip skipif跳过用例内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python使用pytest接口自动化测试的使用
    • Python 测试框架unittest和pytest的优劣
    • python pytest进阶之conftest.py详解
    • python的pytest框架之命令行参数详解(下)
    上一篇:Pytest中skip和skipif的具体使用方法
    下一篇:如何使用pdb进行Python调试
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Pytest中skip skipif跳过用例详解 Pytest,中,skip,skipif,跳过,