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

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Pytest中skip和skipif的具体使用方法

    skip的用法

    使用示例:@pytest.mark.skip(reason="跳过的原因,会在执行结果中打印")

    标记在测试函数中

    举个🌰

    import pytest
    
    
    def test_1():
        print("测试用例1")
    
    
    @pytest.mark.skip(reason="没写完,不执行此用例")
    def test_2():
        print("测试用例2")

    执行结果如下:

    标记在测试类的测试用例中

    举个🌰

    import pytest
    
    class TestCase(object):
        def test_1(self):
            print("测试用例1")
    
    
        @pytest.mark.skip(reason="没写完,不执行此用例")
        def test_2(self):
            print("测试用例2")

    执行结果如下

    标记在测试类方法上

    举个🌰

    import pytest
    
    
    @pytest.mark.skip(reason="没写完,不执行此用例")
    class TestCase1(object):
        def test_1(self):
            print("测试用例1")
    
        def test_2(self):
            print("测试用例2")
    
    
    class TestCase2(object):
        def test_3(self):
            print("测试用例3")
    
        def test_4(self):
            print("测试用例4")

    执行结果如下

    总结

    在测试用例执行期间强制跳过

    以一个for循环为例,执行到第3次的时候跳出

    import pytest
    
    def test_demo():
        for i in range(50):
            print(f"输出第【{i}】个数")
            if i == 3:
                pytest.skip("跑不动了,不再执行了")

    执行结果如下

    在模块级别跳过测试用例

    语法:pytest.skip(msg="",allow_module_level=False)

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

    import pytest
    
    pytest.skip("跳过整个模块", allow_module_level=True)
    
    @pytest.fixture(autouse=True)
    def test_1():
        print("执行测试用例1")
    
    def test_2():
        print("执行测试用例2")

    执行结果如下

    有条件的跳过某些用例

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

    import sys
    import pytest
    
    
    @pytest.mark.skipif(sys.platform == 'darwin', reason="does not run on MacOS")
    class TestSkipIf(object):
        def test_demo(self):
            print("不能在MacOS上运行")

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

    执行结果如下:

    跳过标记的使用

    举个🌰

    import sys
    import pytest
    
    skipmark = pytest.mark.skip(reason="不执行此用例")
    skipifmark = pytest.mark.skipif(sys.platform == 'darwin', reason="does not run on MacOS")
    
    
    @skipifmark
    class TestSkipIf(object):
        def test_demo(self):
            print("不能在MacOS上运行")
    
    
    @skipmark
    def test_1():
        print("测试用例1")
    
    
    def test_2():
        print("测试用例2")

    执行结果如下

    当缺少某些导入时跳过用例

    语法:

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

    参数:

    找不到对应module

    举个🌰

    import pytest
    rock = pytest.importorskip("rock")
    
    @rock
    def test_1():
        print("测试是否导入了rock模块")

    运行结果

    如果版本不达标

    举个🌰

    import pytest
    sel = pytest.importorskip("selenium", minversion="3.150")
    
    @sel
    def test_1():
      	print("测试是否导入了selenium模块")

    运行结果

    整理参考

    小菠萝的测试笔记

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

    您可能感兴趣的文章:
    • python单元测试之pytest的使用
    • python使用pytest接口自动化测试的使用
    • Python测试框架:pytest学习笔记
    • python pytest进阶之xunit fixture详解
    • python中pytest收集用例规则与运行指定用例详解
    上一篇:Python将CSV文件转化为HTML文件的操作方法
    下一篇:Pytest中skip skipif跳过用例详解
  • 相关文章
  • 

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

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

    Pytest中skip和skipif的具体使用方法 Pytest,中,skip,和,skipif,的,