Pytest中conftest.py共享fixture(五)无涯WuYa Python自动化测试

有一点首先需要确认的的是,pytest中的fixture是pytest用于将测试前后进行预备,清理工作的代码分离出核心测试逻辑的一种机制。但是我们更加希望的是在一个测试套件中,能够共享fixture的机制,这样所一个测试套件里面的所有测试点都能够共同使用,和我在早期介绍的分离测试固件的思想有点雷同。在pytest中通过conftest.py来共享fixture,如果希望多个测试文件共同使用一个fixture时候,可以在该目录下创建conftest.py文件,但是切记该文件绝对不能倒入使用,这点一定要注意,创建conftest.py文件后,把需要的fixture加入到里面,就可以使用了。先来一个简单的案例,在一个包中,有三个测试模块,每个测试点都显示开始前执行和结束后执行,也就是说,每个测试点执行的时候,先打印测试开始,然后执行测试点,然后最后打印测试结束,见案例代码:




见conftest.py的源码:


#!/usr/bin/python3

#coding:utf-8

import pytest


@pytest.fixture(autouse=True)

def wuya():

    print('开始测试')

    yield

    print('结束测试')

执行模块test_001.py 或者 test_002.py的测试代码,见执行后的结果信息:


cachedir: .pytest_cache

rootdir: /Applications/code/stack/study/xunit/conftest01, inifile:

plugins: allure-adaptor-1.7.10

collected 2 items


test_001.py::test_login_001

        SETUP    F wuya

        test_001.py::test_login_001 (fixtures used: wuya)PASSED

        TEARDOWN F wuya

test_002.py::test_logout_001

        SETUP    F wuya

        test_002.py::test_logout_001 (fixtures used: wuya)PASSED

来源于微信公众号

python测试

联系作者longtestyan

你可能感兴趣的:(Pytest中conftest.py共享fixture(五)无涯WuYa Python自动化测试)