时间:2021-05-22
前言
今天我们再说一下pytest框架和unittest框架相同的fixture的使用, 了解unittest的同学应该知道我们在初始化环境和销毁工作时,unittest使用的是setUp,tearDown方法,那么在pytest框架中同样存在类似的方法,今天我们就来具体说明。
先附上官方文档的一段说明
1.每个级别的setup/teardown都可以多次复用
2.如果相应的初始化函数执行失败或者被跳过则不会执行teardown方法
3.在pytest4.2之前,xunit fixture 不遵循fixture的作用规则的,因此可以在一个session级别且参数auto=True的fixture前执行setup_method方法
但是到目前为止,所有的xunit fixture已经遵循了fixture执行的规则
function级别
实例
输出结果
functionLevel.py --------------------函数执行前所做的操作--------------------测试函数1--------------------函数执行后所做的操作----------------------------------------函数执行前所做的操作--------------------测试函数2--------------------函数执行后所做的操作--------------------[100%]========================== 2 passed in 0.03 seconds ===========================说明
通过输出结果我们可以总结:setup_function会在每一个测试函数前执行初始化操作;teardown_function会在每一个测试函数执行后执行销毁工作
method级别
实例
输出结果
methodLevel.py --------------------方法执行前所做的操作--------------------测试方法1--------------------方法执行后所做的操作----------------------------------------方法执行前所做的操作--------------------测试方法2--------------------方法执行后所做的操作--------------------[100%]========================== 2 passed in 0.03 seconds ===========================说明
通过输出结果我们可以总结:setup_method会在每一个测试方法前执行初始化操作;teardown_method会在每一个测试方法执行后执行销毁工作,且方法级别的fixture是作用在测试类中的方法上的
class级别
实例
输出结果
classLevel.py setup_class() for TestClass.self.test_1().self.test_2()teardown_class() for TestClass[100%]========================== 2 passed in 0.06 seconds ===========================说明
通过输出结果我们可以总结:setup_class会在测试类执行前执行一次初始化操作;teardown_class会在测试类执行后执行一次销毁工作,且class级别的fixture需要使用@classmethod装饰
module级别
实例
输出结果
moduleLevel.py setup_module() for moduleLevel.test_1().test_2().self.test_3().self.test_4()teardown_module() for moduleLevel[100%]========================== 4 passed in 0.04 seconds ===========================说明
通过输出结果我们可以总结:setup_module会在整个测试文件也就是模块中的测试类或者测试函数,测试方法执行前执行一次初始化操作;teardown_module会在整个测试文件也就是模块中的测试类或者测试函数,方法执行后执行一次销毁工作
以上就是xunit fixture的4个级别,实际工作中该如何使用还需多练习,深入理解才能得心应手!
附上官方文档做参考虽是英文但是很详细
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
fixture函数存在意义 与python自带的unitest测试框架中的setup、teardown类似,pytest提供了fixture函数用以在测试执行
前言学pytest就不得不说fixture,fixture是pytest的精髓所在,就像unittest中的setup和teardown一样,如果不学fixtu
pytestfixtures装饰器pytest中可以使用@pytest.fixture装饰器来装饰一个方法,被装饰方法的方法名可以作为一个参数传入到测试方法中。
本文实例讲述了Python进阶之使用selenium爬取淘宝商品信息功能。分享给大家供大家参考,具体如下:#encoding=utf-8__author__='
python之sqlalchemy创建表的实例详解通过sqlalchemy创建表需要三要素:引擎,基类,元素fromsqlalchemyimportcreate