測試用例跳過:
在實際工作中,經常需要跳過某個測試用例,比如現階段某個功能還沒有開發完畢,但是先把測試用例寫到了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'])
執行效果: