Pytest框架【6】:fixture--conftest.py

说明: conftest.py配置里可以实现数据共享,不需要import就能自动找到配置内容。

注意以下3点:
1、conftest.py配置脚本名称是固定的,不能修改名称
2、conftest.py与运行的用例要在同一个package下,并且有__init__.py文件
3、不需要import导入conftest.py,pytest用例会自动查找

语法: fixture(scope=“function”, params=None, autouse=False, ids=None, name=None):
:arg scope:有四个级别“function”、“class”、“module”、“session”
:arg params:一个可选的参数列表,它将导致多个参数调用fixture功能和所有测试使用它
:arg autouse:如果为True,则为所有测试激活fixture func可以看到它,如果为False,则显示需要参考来激活fixture
:arg ids:每个字符串id的列表,每个字符串对应于params这样他们就是测试id的一部分,如果没有提供id它们将从params自动生成
:arg name:fixture的名称

脚本在同一个文件中test_demo.py:

import pytest

@pytest.fixture()
def login():
    print('输入账号、密码登录')

def test_s1(login):
    print('用例1:登录之后其他操作111')

def test_s2():
    print('用例2:需要登录,操作222')

def test_s3(login):
    print('用例3:登录之后其他操作333')

执行结果:
Pytest框架【6】:fixture--conftest.py_第1张图片
脚本不在同一个文件里:
1、conftest.py文件:

import pytest

@pytest.fixture()
def login():
    print('请输入账号、密码登录')

2、test_fix1.py文件:

import pytest

def test_s1(login):
    print('用例1:登录之后其他动作111')

def test_s2():
    print('用例2:不需要登录,操作222')

def test_s3(login):
    print('用例3:登录之后其他动作333')

3、test_fix2.py文件:

import pytest

def test_s4(login):
    print('用例4:登录之后其他动作111')

def test_s5():
    print('用例5:不需要登录,操作222')

单独执行test_fix1.py文件:
Pytest框架【6】:fixture--conftest.py_第2张图片
单独执行test_fix2.py文件:
Pytest框架【6】:fixture--conftest.py_第3张图片

你可能感兴趣的:(Pytest框架,单元测试)