首页 > 编程知识 正文

fixture函数,Fixture.

时间:2023-05-05 07:45:06 阅读:249647 作者:3600

1、fixture的定义方法fixture:即我们通常所说的前置操作。格式:def fixture(scope="function", params=None, autouse=False, ids=None, name=None):定义fixture:在函数声明之前加上“@pytest.fixture(scope='')"(1)scope:scope=''funtion:当前函数调用class:当前类调用module:全部py模块调用session:当前包下的py用例都调用(2)params:默认为None(讲解在另一篇博客)当不为None时,params里面的每个值,fixture都会调用一次(3)name设置为别名(讲解在另一篇博客)3、conftest的使用一般将fixture写入到coonftest.py配置文件conftest.py配置需要注意以下几点:☆ conftest.py配置脚本名称是固定的,不能改名称;☆ conftest.py与运行的用例要在同一个目录下,并且有__init__.py文件;☆ 不需要import导入 conftest.py,用例会自动查找。4、文件结构


5、fixture单个调用# conftest.py@pytest.fixture()def user(): user='aaa' return user# test_a.pydef test_a(user): print(user)结果: test_a.py .aaa 6、fixture多个调用# conftest.py@pytest.fixture()def user(): user='aaa' return user@pytest.fixture()def user2(): user2='bbb' return user2# test_a.pydef test_a(user,user2): print(user,user2)结果: test_a.py .aaa bbb7、fixture中调用fixture# conftest.py@pytest.fixture()def user(): user='aaa' return user#在psw2中调用另一个fixture:user,当参数传入即可。@pytest.fixture()def psw2(user): usr=user psw=123 return user,psw# test_a.pydef test_c(psw2): print(psw2)结果:('aaa', 123)8、在fixture下的函数下同时传参:# # 在fixture中多参数的传递(通过被调用函数传参)# funtion_a.pydef funtion_a(test_input1,test_input2): test_input1=test_input1 test_input2=test_input2 # print(test_input1,test_input2) return test_input1,test_input2if __name__=='__main__': funtion_a('aaa','bbb')# conftest.pyfrom funtion_a import *@pytest.fixture()def psw(user): usr=user funtion_a('in','out') #返回一个list return [usr,funtion_a('in','out')]# test_a.pydef test_login(psw): # 相应的赋值一个list,数量对应2个 [usr,(inout)]=psw print('结果为:%s'% [usr,(inout)])结果:结果为:['aaa', ('in', 'out')]9、parametsize与fixture同时使用# conftest.py# paramesize与fixture的结合使用@pytest.fixture(scope="function")def test_setup(): a='前置操作返回值' return a# test_a.pyimport pytesttest_data=['a','b','c']@pytest.内向的枕头.parametrize('test_in',test_data)def test_input_test(test_setup,test_in): print(test_setup) test_input=test_in print(test_input)test_input.py .前置操作返回值a.前置操作返回值b.前置操作返回值c [100%]========================== 3 passed in 0.05 seconds ===========================10、在fixture中存储testcase的返回值# conftest.py@pytest.fixture(scope="function")def add(request): yield print('开始存数据') print('存的数据为 %s' % request.config.s)#test_a.py# 验证在fixture后存用例的返回值def test_sava(add,request): request.config.s='aaa'结果:test_a.py .开始存数据存的数据为 aaa
React中的权限组件设计问题小结

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。