Pytest(5) - conftest.py详解

conftest.py是什么?

我们可以将conftest.py理解为一个专门存放fixture的配置文件。

conftest.py的优势

当多个test.py同时需要使用一个前置条件,比如登录功能,此时,登录功能不能存放在某一个py中。

conftest.py可以完美解决上面问题,能够单独对fixture进行管理。

conftest.py配置文件的注意事项:

  • conftest.py命名是固定的,不可改变。
  • pytest会默认执行conftest.py中的fixture。
  • conftest.py只对同个目录下的py生效。
  • 每个目录都可以有自己的conftest.py文件,一个项目中可以拥有多个conftest.py文件。
  • 执行测试用例时,conftest.py不用手动导入。

举例说明

conftest.py文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pytest
# 一般最上面的fixture都是全局的
@pytest.fixture(scope="session")
def login():
    print("登录功能,返回账号")
    name = "testyy"
    token = "npoi213bn4"
    yield name, token
    print("====退出登录!!!====")


@pytest.fixture(autouse=True)
def get_info(login):
    name, token = login
    print(f"== 每个用例都调用的外层fixture:打印用户token: {token} ==")

测试用例

def test_get_info(login):
    name, token = login
    print("***基础用例:获取用户个人信息***")
    print(f"用户名:{name}, token:{token}")

你可能感兴趣的:(Pytest)