• Pytest学习笔记(四) skip跳过测试用例


    在执行测试用例时,有些用例可能不需要执行,这时可以用skip来跳过用例:

    1、skip 始终跳过该测试用例

    如下三个用例,标记用例2不执行

    import pytest
    
    
    def test_001():
        assert 1 == 1
    
    
    @pytest.mark.skip(reason="此条用例暂不执行")
    def test_002():
        assert 1 == 1
    
    
    def test_003():
        assert 1 == 1

    执行 pytest -vrs,结果如下:

     如上,使用skip装饰器标记是跳过测试用例的最简单方法。

    也可以在测试执行或setup期间,通过调用pytest.skip(reason)函数强制跳过该用例:

    def test_function():
        if not valid_config():
            pytest.skip("不支持该配置")

    还可以在模块级别跳过整个模块:pytest.skip(reason,allow_module_level=True)

    import sys
    import pytest
    
    if not sys.platform.startswith("win"):
        pytest.skip("跳过只支持Windows平台的用例",allow_module_level=True)

    2、skipif  指定条件下跳过测试用例

    满足指定条件时则跳过用例的执行,如下当Python版本小于3.9时跳过测试用例

    import pytest
    import sys
    
    @pytest.mark.skipif(sys.version_info < (3, 9), reason="需要Python3.9版本以上")
    def test_002():
        assert 1 == 1

    注意:skipif方法必须指定reason,否则会报错

    我们还可以定义一个变量,根据变量返回为True或False来判断是否跳过用例,如下:

    import pytest
    import sys
    
    minversion = pytest.mark.skipif(
        sys.version_info < (3, 9), reason="需要Python3.9版本以上"
    )
    
    
    @minversion
    def test_002():
        assert 1 == 1

    在另一个文件中还可以导入这个变量来重复引用

    from api.test_case import minversion
    
    
    @minversion
    def test_003():
        assert 5 == 5

    跳过整个文件的所有测试用例

    import pytest
    import sys
    
    # 当前文件下的测试用例需要满足这个条件才能被执行
    pytestmark = pytest.mark.skipif(sys.version_info < (3, 9), reason="需要Python3.9版本以上")
    
    
    def test_001():
        assert 1 == 1
    
    
    def test_002():
        assert 8 == 8
  • 相关阅读:
    ASP.Net请求处理机制初步探索之旅
    WebService如何调试及测试工具
    winform窗体间传值
    C# 窗体间传值方法大汇总
    c#写windows服务
    C# 公关类(全)
    简单的yoman generator
    Service Worker + Push API + Notification API实现桌面消息推送
    Service Worker
    HTML5桌面通知Notification
  • 原文地址:https://www.cnblogs.com/eastonliu/p/14108734.html
Copyright © 2020-2023  润新知