• pytest跟我练08-->fixtrue基础之conftest.py模块使用


    前言

         正确的道路是这样:吸取你的前辈所做的一切,然后再往前走。——列夫·托尔斯泰
         建议大家多看贴,少走弯路~
    

    一、conftest.py文件是什么

    • 单独存放fixtrue配置的一个文件
    • 用处是可以多个不同的pytest测试脚本共用一套fixture配置,代码维护方便

    二、conftest.py文件编写的注意事项

    • conftest.py文件不能修改名称,否则pytest检测不到
    • conftest.py与运行的用例要在python同一个包下,不能是同一个目录下(ps:init.py)
    • conftest.py文件配置好后,pytest自动检测并生效,不需要进行import导入

    三、conftest.py文件使用实例

    3.1 来个简单的 conftest.py文件 使用练练手

    代码层次路径如下截图:

    代码如下:
    conftest.py文件代码:

    import pytest
    
    @pytest.fixture(name='conftest')
    def setUp():
        print('conftest:测试初始化')
        yield
        print('conftest:测试清理')
    

    test_01.py文件代码:

    def test01(conftest):
        print('execute Test01')
        assert 1
    

    test_02.py文件代码:

    import pytest
    
    def test02(conftest):
        print('execute Test02')
        assert 1
    
    if __name__ == '__main__':
        pytest.main(["-s"])
    
    • 上述实例要运行,只需要运行 test_02.py 文件即可,会自动检测 conftest.py 文件中的fixtrue
    • 通过上述实例,可以发现 test_01.py 和 test_02.py 都能引用到 conftest.py 文件中的fixtrue

    3.2 再来一个多层次的

    代码层次路径如下截图:

    之前的代码不变,增加的部分代码如下:
    test_package_01包下的conftest.py文件:

    import pytest
    
    @pytest.fixture(name='package_01_conftest')
    def setUp():
        print('package_01_conftest:测试初始化')
        yield
        print('package_01_conftest:测试清理')
    

    test_package_01包下的test_p_01.py文件:

    #test01方法同时引用顶层、包下的的fixtrue
    def test01(conftest,package_01_conftest): 
        print('execute test_p_01')
        assert 1
    

    test_package_02包下的代码类似,不再重复罗列,占用篇幅~~

    • 上述实例要运行,只需要运行 test_02.py 文件即可,会自动检测到所有 conftest.py 文件中的fixtrue
    • 上例中包含了3个 conftest.py 文件,有顶层的,有测试包下的
    • 上例执行后查看结果会发现顶层的 conftest.py 文件先生效,然后再生效测试包下的
    • 在test01方法中引用了顶层和包下的的fixtrue,可以看出顶层的fixtrue对当面包以及子包下的测试方法都能生效
    • 注意:test_package_01包下的测试模块不能引用test_package_02包下 conftest.py 的fixture,因为它们没有上下的层级关系
    • 在实际使用 conftest.py 文件中,一般会把顶层的fixtrue的scope设置为session,存放整个项目需要使用的初始化操作或数据
  • 相关阅读:
    前端分页功能的实现以及原理
    Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
    Jquery实现的几款漂亮的时间轴
    jQuery点击弹出层,弹出模态框,点击模态框消失
    如何用CSS快速布局(一)—— 布局元素详细
    验证控件jQuery Validation Engine调用外部函数验证
    Javascript实现页面跳转的几种方式
    最详细win7下手动搭建PHP环境:apache2.4.23+php7.0.11
    spark调优——JVM调优
    spark调优——Shuffle调优
  • 原文地址:https://www.cnblogs.com/dream66/p/12555763.html
Copyright © 2020-2023  润新知