标签:可以 fixture 笔记 mark pytest 参数 使用 整理
整理几点pytest常用知识点:
1、断言
pytest的亮点之一就是:重写assert关键字,assert关键字后可以接任何表达式,表达式通过布尔转换后为False则意味着测试失败
2、预期异常
异常的发生在预期中,实际发生了指定异常则意味着测试通过,使用 with pytest.raises(<Excepted exception>)来声明
3、函数标记marker
一个函数可以有多个marker,一个marker也可以标记多个函数,使用@pytest.mark.somthing来进行标记,其作用是筛选
4、yield
yield之后的代码会在测试后运行,用于清场,yield还可以返回结果,如
yield driver //返回driver对象
driver.quit()
5、跳过测试
(1)pytest.mark.skip(),可以添加reason对跳过原因进行注明
(2)pytest.mark.skipif(vsersion>1.2,reason="version too latest") ,给跳过的测试添加理由和条件,其判定条件可以是任何表达式
6、标记预期会失败的用例
pytest.mark.xfail(条件,理由) 可以添加条件和理由,但不是必须的
8、fixture 手脚架
(1)conftest.py文件:共享fixture:作用域为其所在目录以及子目录,conftest.py是模块,但是不能被导入,不允许import conftest,它被视为一个本地插件库
(2)--setup-show可以看到测试过程中fixture的执行过程
(3)使用fixture传递数据
(4)fixture的作用范围:scope=<function,class,module,session> 默认为function,fixture只能使用与自己同级或者高级的fixturebr/>(5)@pytest.mark.usefixtures('fix1','fix2'),除了使用fixture名来引用,还可以使用mark方式来指定
(6)autouse 在fixture可指定该值,用于是否自动引用
(7)fixture重命名,即指定name属性
9、fixture参数化
使用params参数指定,使用request.param来引用,每个使用参数化fixture的测试函数都可以被运行多次
(1)假设被测函数同时使用两个参数化的fixture作为参数的话,其执行次数将会是两个fixture的参数个数的乘机,是一个组合的结果
(2)当使用fixture作为参数时,且fixture具有返回值,此时无法使用yield语句,否则报错
标签:可以,fixture,笔记,mark,pytest,参数,使用,整理 来源: https://blog.51cto.com/9605182/2488110
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。