婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Pytest中conftest.py的用法

Pytest中conftest.py的用法

熱門標簽:煙臺電話外呼營銷系統(tǒng) 如何地圖標注公司 預覽式外呼系統(tǒng) 上海正規(guī)的外呼系統(tǒng)最新報價 電銷機器人錄音要學習什么 長春極信防封電銷卡批發(fā) 企業(yè)彩鈴地圖標注 銀川電話機器人電話 外賣地址有什么地圖標注

前言

在之前介紹fixture的文章中,我們使用到了conftest.py文件,那么conftest.py文件到底該如何使用呢,下面我們就來詳細了解一下conftest.py文件的特點和使用方法吧

什么是conftest.py

我們之前了解了fixture,fixture可以直接定義在測試腳本中,但是有些時候,我們希望一個fixture可以被復用,這就需要對fixture進行集中管理,Pytest使用文件conftest.py集中管理固件.在復雜的項目中,可以在不同的目錄層級定義conftest.py,其作用域為其所在的目錄和子目錄,通常情況下,conftest.py@pytest.fixture()會結合使用,來實現(xiàn)全局的前后置處理。

conftest.py特點

  • conftest.py文件的名稱是固定的,不能修改
  • conftest.py與運行的用例要在同一個pakage下,并且有__init__.py文件
  • 不需要import導入conftest.py文件,pytest用例會自動識別該文件,放到根目錄下可以全局目錄調用,放在某個package下,那就在該package內有效
  • 不同目錄可以有自己的conftest.py,一個項目中可以有多個conftest.py
  • pytest會默認讀取conftest.py里面的所有fixture,所有同目錄測試文件運行前都會執(zhí)行conftest.py文件

conftest.py用法

在我們實際的測試中,conftest.py文件需要結合fixture來使用,所以fixture中參數scope也適用conftest.py中fixture的特性,這里再說明一下

  • conftest中fixture的scope參數為session,所有的測試文件執(zhí)行前(后)執(zhí)行一次conftest.py文件中的fixture。
  • conftest中fixture的scope參數為module,每一個測試.py文件執(zhí)行前(后)都會執(zhí)行一次conftest.py文件中的fixture
  • conftest中fixture的scope參數為class,每一個測試文件中的測試類執(zhí)行前(后)都會執(zhí)行一次conftest.py文件中的fixture
  • conftest中fixture的scope參數為function,所有文件的測試用例執(zhí)行前(后)都會執(zhí)行一次conftest.py文件中的fixture

conftest.py實際案例

我們按照這樣的目錄新建一個項目

在根目錄conftestdemo下

根目錄中的conftest.py文件中,一般寫全局的fixture,比如登錄

conftest.py

import pytest


@pytest.fixture(scope="session")
def login():
    print("***登錄成功,返回用戶名***")
    name = "rockche"
    yield name
    print("***退出登錄***")


@pytest.fixture(autouse=True)
def get_name(login):
    name = login
    print(f"--每個用例都調用外層fixiture:打印用戶name:{name}--")

根目錄下的測試用例

test_1.py

def test_get_name(login):
    name = login
    print("***基礎用例:獲取用戶name***")
    print(f"用戶名:{name}")

運行conftestdemo下的所有用例

run.py

import pytest

if __name__ == '__main__':
    pytest.main(["-s", "../conftestdemo/"])

test_baidu目錄下

配置針對baidu網站的測試用例獨有的fixture

conftest.py

import pytest


@pytest.fixture(scope="module")
def open_baidu(login):
    name = login
    print(f"用戶 {name} 打開baidu")

test_case1.py

def test_case2_01(open_baidu):
    print("搜索pytest")


def test_case2_02(open_baidu):
    print("搜索博客園")

test_cnblogs目錄下

沒有__init__.py文件也沒有conftest.py文件

test_case1.py

def test_no_fixture(login):
    print("沒有__init__文件,直接進入cnblogs", login)

test_taobao目錄下

配置針對taobao網站的測試用例獨有的fixture

conftest.py

import pytest


@pytest.fixture(scope="function")
def open_taobao(login):
    name = login
    print(f"用戶 {name} 進入淘寶")

test_case1.py

class TestTaobao:
    def test_case1_01(self, open_taobao):
        print("選購商品")

    def test_case1_02(self, open_taobao):
        print("進入結算界面")

運行run.py

到此這篇關于Pytest中conftest.py的用法的文章就介紹到這了,更多相關Pytest conftest.py內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • pytest conftest.py文件的使用講解
  • python pytest進階之conftest.py詳解

標簽:西寧 上饒 珠海 宜昌 佳木斯 湖北 潮州 盤錦

巨人網絡通訊聲明:本文標題《Pytest中conftest.py的用法》,本文關鍵詞  Pytest,中,conftest.py,的,用法,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Pytest中conftest.py的用法》相關的同類信息!
  • 本頁收集關于Pytest中conftest.py的用法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 平凉市| 巧家县| 贡山| 凤山县| 陆河县| 徐汇区| 宁阳县| 巴彦淖尔市| 邻水| 北川| 南昌市| 章丘市| 甘德县| 通道| 临漳县| 元氏县| 贵州省| 县级市| 增城市| 巩义市| 额济纳旗| 合水县| 罗江县| 沂源县| 莆田市| 岢岚县| 蒲江县| 丹东市| 大同县| 云安县| 平泉县| 叶城县| 任丘市| 甘洛县| 黔江区| 福清市| 同仁县| 泰宁县| 大理市| 江津市| 达拉特旗|