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'])

 

執行效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM