Pytest测试框架(8):pytest_测试用例跳过(忽略)设置

测试用例跳过:

  在实际工作中,经常需要跳过某个测试用例,比如现阶段某个功能还没有开发完毕,但是先把测试用例写到了pytest中,因此需要先把这个测试用例给跳过。

可以使用如下方式跳过用例:

1、使用@pytest.mark.skip(self,reason=None):在要跳过的测试用例前加入该标签,并可以选择传入一个非必须参数reason表示原因

代码示例:

import pytest


class TestDome_09:

    @pytest.mark.skip('无条件跳过')  # 无条件跳过
    def test_case_01(self):
        print("----- 用例01 -----",end=" ")
        assert True
    def test_case_02(self):
        print("----- 用例02 -----",end=" ")
        assert True

    def test_case_03(self):
        print("----- 用例03 -----",end=" ")
        assert True

    def test_case_04(self):
        print("----- 用例04 -----",end=" ")
        assert True

if __name__ == '__main__':
    pytest.main(['-s','-v'])

执行效果:

 

 

2、使用@pytest.mark.skipif(self,condition,reason=None):在要跳过的测试用例前加入该标签,根据condition条件判断是否进行跳过

代码示例:

import pytest


class TestDome_09:

    def test_case_01(self):
        print("----- 用例01 -----",end=" ")
        assert True

    @pytest.mark.skipif([1, 2, 3],reason='条件成立时跳过')
    def test_case_02(self):
        print("----- 用例02 -----",end=" ")
        assert True

    def test_case_03(self):
        print("----- 用例03 -----",end=" ")
        assert True

    def test_case_04(self):
        print("----- 用例04 -----",end=" ")
        assert True

if __name__ == '__main__':
    pytest.main(['-s','-v'])

 

执行效果:

 

 

3、使用skip()方法:在测试用例中调用pytest.skip()方法来实现跳过,可以选择传入msg参数来说明跳过原因;如果想要通过判断是否跳过,可以写在if判断里

代码示例:

import pytest


class TestDome_09:

    def test_case_01(self):
        print("----- 用例01 -----",end=" ")
        assert True

    def test_case_02(self):
        print("----- 用例02 -----",end=" ")
        assert True

    def test_case_03(self):
        if True:
            pytest.skip('方法内部跳过')
        print("----- 用例03 -----",end=" ")
        assert True

    def test_case_04(self):
        print("----- 用例04 -----",end=" ")
        assert True

if __name__ == '__main__':
    pytest.main(['-s','-v'])

 

执行效果:

 

 

4、使用pytestmark=pytest.mark.skip()方法:可以跳过整个模块,注意pytestmark为关键字,必须用此名称

import pytest

pytestmark=pytest.mark.skip('跳过整个模块')
class TestDome_09:

    def test_case_01(self):
        print("----- 用例01 -----",end=" ")
        assert True

    def test_case_02(self):
        print("----- 用例02 -----",end=" ")
        assert True

    def test_case_03(self):
        print("----- 用例03 -----",end=" ")
        assert True

    def test_case_04(self):
        print("----- 用例04 -----",end=" ")
        assert True

if __name__ == '__main__':
    pytest.main(['-s','-v'])

 

执行效果:

 

posted @ 2021-10-30 17:52  奔跑在路上you  阅读(1198)  评论(0编辑  收藏  举报