zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Java 集合深入理解(15):AbstractMap
    数据库服务器的性能调优
    重温数据结构:哈希 哈希函数 哈希表
    Linux 虚存 linux2.6内核特性
    不想做却不得不做某份工作,怎么破?
    Java 集合深入理解(14):Map 概述
    Linux 虚存的性能问题
    Android重写getResources规避用户调整系统字体大小影响Android屏幕适配
    Android CardView设置成普通的Framelayout
    linux系统性能监控--网络利用率
  • 原文地址:https://www.cnblogs.com/eastonliu/p/14108734.html
Copyright © 2011-2022 走看看