pytest框架,运行顺序的方法: 下面介绍一下通过mark标识来,来实现对方法的执行
一、跳过不执行的测试类: ? 1、@pytest.mark.skip()标签,用他们装饰测试类 ? import pytest ? @pytest.mark.skip(reason='不执行') ? class Test_login(): ? ? ? ?def test_login(self): ? ? ? ? ? print("success") ? 把@pytest.mark.skip()标签放在类的前面,执行程序时,类下面的所有方法都不进行执行 ? 2、import pytest ? class Test_login(): ? ? ? ?@pytest.mark.skip(reason='不执行') ? ? ? ?def test_login1(self): ? ? ? ? ? print("success")
? ? ? ?def test_login2(self): ? ? ? ? ? print("fail") ? ?#运行程序时,执行test_login2方法,不执行test_login1方法 ? ?把@pytest.mark.skip()标签放在方法的前面,执行程序时,不执行该标签下的测试方法,没有标签的测试方法要执行 ?? ? 3、标签@pytest.mark.skipif(条件1==1,reason='跳过原因'),执行时需要满足条件为true时,才跳过不执行 ? ? ? ? 对影响整个测试类时,标签放在类前面 ?? ?import pytest ?? ? s="maoyan" ??? ? @pytest.mark.skipif(s="maoyan",reason='跳过原因') ??? ? class Test_login1(): ? ? ? ??? ??? ?def test_login1(self): ? ? ? ? ? ?? ??? ?print("success") ??? ?@pytest.mark.skipif(s="yanshou",reason='跳过原因') ??? ? class Test_login2(): ? ? ? ??? ??? ?def test_login3(self): ? ? ? ? ? ?? ??? ?print("success") ? ? 运行程序时,只运行class Test_login1():类下面的方法,不运行class Test_login2():类下的方法
?? ?测试某个测试方法时: ?? ?import pytest ?? ? s="maoyan" ??? ? class Test_login1(): ?? ??? ?@pytest.mark.skipif(s="maoyan",reason='跳过原因') ? ? ? ??? ??? ?def test_login1(self): ? ? ? ? ? ?? ??? ?print("success") ? ? ? ??? ??? ?def test_login3(self): ? ? ? ? ? ?? ??? ?print("success") ?? ?运行程序时,只运行test_login1方法,不运行test_login3的方法
执行标签的命令:if __name__=='__main__': ?? ??? ??? ?pytest.main(['-rs','test01.py'])#用rs可以打印出不运行该测试用例的原因
二、按照标签的标识的顺序进行执行: ?(1 )使用 @pytest.mark.run(order=x) 标记被测试函数
(2)运行的顺序由order传入的参数决定;(order从小到大的顺序执行) ?? ?import pytest ?? ?? ??? ? class Test_login1(): ?? ??? ?@pytest.mark.run(order=1) ? ? ? ??? ??? ?def test_login1(self): ? ? ? ? ? ?? ??? ?print("success") ?? ??? ?@pytest.mark.run(order=3) ? ? ? ??? ??? ?def test_login3(self): ? ? ? ? ? ?? ??? ?print("d") ?? ??? ?@pytest.mark.run(order=4) ?? ??? ?def test_login2(self): ? ? ? ? ? ?? ??? ?print("su") ?? ??? ?@pytest.mark.run(order=2) ? ? ? ??? ??? ?def test_login4(self): ? ? ? ? ? ?? ??? ?print("ss") ?? ?执行顺序: ?? ??? ?test_login1 ?? ??? ?test_login4 ?? ??? ?test_login2 ?? ??? ?test_login3 ?? ?1、标记于被测试函数, @pytest.mark.run(order=x) ?? ?2、根据order传入的参数来解决运行顺序 ?? ?3、order值全为正数或负数时,值越小优先级越高 ?? ?4、正负数同时存在时,正数优先极高 ?? ?5、已标记和未标记的函数,已标记的函数优先极高 ?
|