测试用例跳过:
在实际工作中,经常需要跳过某个测试用例,比如现阶段某个功能还没有开发完毕,但是先把测试用例写到了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'])
执行效果: