标签:__ 用例 -- fixture autouse test pytest print def
前言
平常写自动化用例会写一些前置的fixture操作,用例需要用到就直接传该函数的参数名称就行了。当用例很多的时候,每次都传这个参数,会比较麻烦。
fixture里面有个参数autouse,默认是False没开启的,可以设置为True开启自动使用fixture功能,这样用例就不用每次都去传参了。
调用fixture三种方法
1.函数或类里面方法直接传fixture的函数参数名称
2.使用装饰器@pytest.mark.usefixtures()修饰
3.autouse=True自动使用
用例传fixture参数
方法一:先定义go功能(go可以改为任意名字),用例全部传go参数,调用该功能
#test_fix1.py import pytest @pytest.fixture(scope="function") def go(request): print("\n----开始执行function----") def test_1(go): print("---用例1执行---") class Test_aaa(): def test_2(self,go): print("-----用例2----") def test_3(self,go): print("---用例3---") if __name__=="__main__": pytest.main(["-s","test_fix1.py"])
装饰器usefixtures
方法二、使用装饰器@pytest.mark.usefixtures()修饰需要运行的用例
#test_fix1.py import pytest @pytest.fixture(scope="function") def go(request): print("\n----开始执行function----") @pytest.mark.usefixtures("go") def test_1(): print("---用例1执行---") @pytest.mark.usefixtures("go") class Test_aaa(): def test_2(self): print("-----用例2----") def test_3(self): print("---用例3---") if __name__=="__main__": pytest.main(["-s","test_fix1.py"])
设置autouse=True
方法三、autouse设置为True,自动调用fixture功能
go设置scope为module级别,在当前.py用例模块只执行一次,autouse=True自动使用。
xixi设置scope为function级别,每个用例前都调用一次,自动使用。
#test_fix1.py import pytest @pytest.fixture(scope="module",autouse=True) def go(request): print("\n----开始执行module----") print("module:{}".format(request.module.__name__)) print("-=-=启动浏览器-=-=") yield print("=-=-结束测试 end =-=-") @pytest.fixture(scope="function",autouse=True) def xixi(request): print("function:{} \n===回到首页===".format(request.function.__name__)) def test_1(): print("---用例1执行---") class Test_aaa(): def test_2(self): print("-----用例2----") def test_3(self): print("---用例3---") if __name__=="__main__": pytest.main(["-s","test_fix1.py"])
运行结果
上面函数写到class里,作用域就只有类里的方法了。
#test_fix1.py import pytest @pytest.fixture(scope="module",autouse=True) def go(request): print("\n----开始执行module----") print("module:{}".format(request.module.__name__)) print("-=-=启动浏览器-=-=") yield print("=-=-结束测试 end =-=-") def test_1(): print("---用例1执行---") class Test_aaa(): @pytest.fixture(scope="function", autouse=True) def xixi(self,request): print("\n function:{} ===回到首页===".format(request.function.__name__)) def test_2(self): print("-----用例2----") def test_3(self): print("---用例3---") if __name__=="__main__": pytest.main(["-s","test_fix1.py"])
标签:__,用例,--,fixture,autouse,test,pytest,print,def 来源: https://www.cnblogs.com/canglongdao/p/13404923.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。