ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

pytest学习笔记整理

2020-04-17 14:56:12  阅读:346  来源: 互联网

标签:可以 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(条件,理由) 可以添加条件和理由,但不是必须的

7、参数化br/>(1)@pytest.mark.parametrize(argnames,argvaluses)来传递数据,可以用在函数以及类中,如果用在类中,则被所有类方法所用
(2)@pytest.mark.parametrize('x,y',[pytest.param(2,2,id='test 1+2')])
def test_add(x,y):
z = x+y
assert z > 3
添加一个id,其实就是更加能看出来该组数据是个啥,起到一个提示作用,格式是pytest.param(<value>,id="something")

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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有