pytest中conftest的scope的作用

关于scope作用:
scope参数作用范围
控制fixture的作用范围:session>module>class>function
function:每一个函数或方法都会调用
class:每一个类调用一次,一个类中可以有多个方法
module:每一个.py文件调用一次,该文件内又有多个function和class
session:是多个文件调用一次,可以跨.py文件调用,每个.py文件就是module

conftest中的yield:
用例开始前会执行yield前面的代码,用例结束后会执行yield后面的代码。

1、公共的conftest函数

'''
Create file time:2021/9/7 10:46
File ctreate by author: jingying.lu
创建一个前置conftest
'''

import  pytest
@pytest.fixture(scope="function",name='loginfuntion')  # function
def login():
    print('用例开始执行,在函数开始前调用一次')
    yield
    print('用例执行结束用例,在函数结束后调用一次')

@pytest.fixture(scope='class',name='loginclass')  # class
def login2():
    print('用例开始执行,在类开始前调用一次')
    yield
    print('用例执行结束用例,在类结束后调用一次')

@pytest.fixture(scope='module',name='loginmodule')  # module
def login3(): 
    print('用例开始执行,在整个py开始前调用一次')
    yield
    print('用例执行结束用例,在整个py结束后调用一次')

@pytest.fixture(scope='session',name='loginsession') # session
def login4():
    print('用例开始执行,在整个目录下开始前调用一次')
    yield
    print('用例执行结束用例,在目录下结束后调用一次')

2、验证funtion作用


'''
验证conftest的yield
'''

def test_funtion(loginfuntion):
    print(loginfuntion)
==========================================================
test_funtion.py::test_funtion 用例开始执行,在函数开始前调用一次
PASSED                                     [100%]None
用例执行结束用例,在函数结束后调用一次

3、验证class作用


class Test():
    def test_class1(self,loginclass):
        print('测试1')
    def test_class2(self,loginclass):
        print('测试2')

执行:
collecting ... collected 2 items

test_class.py::Test::test_class1 用例开始执行,在类开始前调用一次
PASSED                                  [ 50%]测试1

test_class.py::Test::test_class2 PASSED                                  [100%]测试2
用例执行结束用例,在类结束后调用一次


========================== 2 passed in 0.08 seconds ===========================

4、验证module作用

def test_01(loginmodule):
    print(loginmodule)

class Test():
    def test_02(self,loginmodule):
        print(loginmodule)
    def test_03(self,loginmodule):
        print(loginmodule)

执行:
collecting ... collected 3 items

test_module.py::test_01 用例开始执行,在整个py开始前调用一次
PASSED                                           [ 33%]None

test_module.py::Test::test_02 PASSED                                     [ 66%]None

test_module.py::Test::test_03 PASSED                                     [100%]None
用例执行结束用例,在整个py结束后调用一次


========================== 3 passed in 0.09 seconds ===========================

4、验证session作用

# test_01.py

def test_session(loginsession):
    print(loginsession)

class TestSession():
    def test_session02(self,loginsession):
        print(loginsession)
    def test_session03(self,loginsession):
        print(loginsession)

# test_02.py

def test_session3(loginsession):
    print(loginsession)

class TestSession():
    def test_session04(self,loginsession):
        print(loginsession)
    def test_session05(self,loginsession):
        print(loginsession)

执行以上2个文件
collecting ... collected 6 items

test_session.py::test_session 用例开始执行,在整个目录下开始前调用一次
PASSED                                     [ 16%]None

test_session.py::TestSession::test_session02 PASSED                      [ 33%]None

test_session.py::TestSession::test_session03 PASSED                      [ 50%]None

test_session2.py::test_session3 PASSED                                   [ 66%]None

test_session2.py::TestSession::test_session04 PASSED                     [ 83%]None

test_session2.py::TestSession::test_session05 PASSED                     [100%]None
用例执行结束用例,在目录下结束后调用一次


========================== 6 passed in 0.20 seconds ===========================

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值