zoukankan      html  css  js  c++  java
  • pytest:conftest.py文件

    一、fixture scope 为session 级别是可以跨 .py模块调用的,也就是当我们有多个 .py文件的用例时,如果多个用例只需调用一次fixture,可以将scope=‘session’,并且写到conftest.py文件里。写到conftest.py文件可以全局调用这里面的方法。使用的时候不需要导入conftest.py文件。使用conftest.py的规则:

    1.conftest.py这个文件名是固定,不可以更改

    2.conftest.py 与运行用例在同一个包下,并且该包中有__int__.py文件

    3.使用的时候不需要导入conftest.py ,pytest会自动识别到这个文件

    4.放到项目的根目录下可以全局调用,放到某个package 下,就在这个package 内有效

    案例:

    在运行整个项目下的所有用例,只执行一次打开浏览器。执行完所有的用例之后再执行关闭浏览器,可以在这个项目下创建一个conftest.py文件,将打开浏览器操作的方法

    放在这个文件下,并添加一个装饰器 @pytest.fixture(scope='session'),就能够实现整个项目所有测试用例的浏览器复用,案例目录结构如下:

     创建目录test_scope,并在目录下创建三个文件conftest.py   test_scope1.py和test_scope2.py

    conftest.py文件定义了公共方法,pytest会自动读取conftest.py定义的方法,代码如下

    #!/usr/bin/env python
    # _*_coding: utf-8 _*_
    
    import pytest
    
    @pytest.fixture(scope="session")
    def open():
        print("打开浏览器")
        yield
    
        print("执行teardown !")
        print("关闭浏览器")

    创建文件test_scope1.py代码如下:

    !/usr/bin/env python
    # _*_coding: utf-8 _*_
    
    import pytest
    
    
    def test_search1(open):
        prin("test_search1")
        pass
    
    
    def test_search2(open):
        print("test_search2")
        pass
    
    
    def test_search3(open):
        prin("test_search3")
        pass

    创建test_scope2.py 代码如下

    #!/usr/bin/env python
    # _*_coding: utf-8 _*_
    
    class TestFunc():
        def test_case1(self):
            print("test_case1,需要登入")
    
        def test_case2(self):
            print("test_case2,不需要登入")
    
        def test_case3(self):
            print("test_case3,需要登入")

    打开CMD,进入目录test_scope执行如下命令

    pytest -v -s

    或者

    pytest  -v  -s  test_scope1.py  test_scope2.py

  • 相关阅读:
    Mysql 取整的方法
    方法、选择比努力更重要, 所以既要低头干活,更要抬头看路!
    mysql索引
    MYSQL 存储过程 多表更新异常捕捉和异常处理方式
    JavaScript中in的用法
    中美印日四国程序员比较
    ubuntu下Django的下载与安装(三种方法)
    ubuntu下下载并安装H265(hm.x.x代码和X265代码)
    s3c-u-boot-1.1.6源码分析之一start.s
    s3c-u-boot-1.1.6源码分析
  • 原文地址:https://www.cnblogs.com/vigo01/p/14336989.html
Copyright © 2011-2022 走看看