zoukankan      html  css  js  c++  java
  • pytest的conftest.py配置

      上一篇文章中我们的fixture都是与测试用例写在同一个.py文件中,如果多个.py文件里的测试用例都需要调用同一个fixture,这种场景我们就不能将fixture与测试用例写在同一个.py文件中了,这时应该要有一个配置文件来统一管理这些fixture,我们需要将fixture作为公共的方法抽取到配置文件中来统一管理这些前置或后置操作。pytest默认读取conftest.py中的配置。

    conftest.py配置的注意点:

    • conftest.py配置的名称是固定的,不能修改
    • conftest.py与运行的测试用例要在同一个package下,并且要有__init__.py文件
    • 在使用时不需要手动import导入conftest.py,pytest在测试用例执行时会自动去conftest.py文件中查找fixture
    • 一个项目下可以有多个conftest.py文件,一般在项目根目录下放一个conftest.py文件起到全局作用;在不同的目录下都可以放置conftest.py文件,作用范围只在该层级以及以下目录生效

    例子:

    # file_name: conftest.py
    
    @pytest.fixture(scope="session")
    def first():
        print('
    获取用户名,scope为session级别,多个.py模块只运行一次')
        a = 'lwjnicole'
        return a
    # file_name: test_fixture1.py
    
    import pytest
    
    
    def test_1(first):
        print('
    测试账号为:{}'.format(first))
        assert first == "lwjnicole"
    
    
    if __name__ == '__main__':
        pytest.main(['-s', 'test_fixture1.py'])
    # file_name: test_fixture2.py
    
    import pytest
    
    
    def test_2(first):
        print('
    测试账号为:{}'.format(first))
        assert first == "lwjnicole"
    
    
    if __name__ == '__main__':
        pytest.main(['-s', 'test_fixture2.py'])

    分别单独运行test_fixture1.py和test_fixture2.py都能调用到first()方法,这样我们就能实现单独抽取一些公共的操作方法了。

  • 相关阅读:
    cygwin配合NDK开发Android程序
    和菜鸟一起学c之函数指针
    和菜鸟一起学android4.0.3源码之SD卡U盘等自动挂载配置
    Android系统的开机画面显示过程分析
    android编译系统的makefile文件Android.mk写法
    Linux下makefile教程
    和菜鸟一起学linux之本地git中心仓库建立
    强人总结的Windows XP实用技巧45条(一)
    Webshell下自动挂马的ASP
    多进程Telnet的木马例子
  • 原文地址:https://www.cnblogs.com/lwjnicole/p/14430440.html
Copyright © 2011-2022 走看看