Pytest項目_day11(fixture、conftest)

Fixture

  • fixture是一種類似于setup、teardown,用于測試前后進行預備、清理工作的代碼處理機制
    • 相比于setup、teardown來說,fixture命名更靈活,局限性更少
    • 使用conftest.py配置里面可以實現數據共享,不需要import就能自動找到一些配置

使用范圍

請添加圖片描述

function范圍

  • 我們首先需要在一個自定義方法前寫上fixture的注解
    • 如果不寫范圍,則該fixture默認為function范圍
    • 我們需要在要求調用該fixture的方法的形參處,寫上自定義方法名
      在這里插入圖片描述
  • 我們也可以使用autouse=True來讓該文件內的每一個函數都自動調用fixture,同時避免我們手動寫自定義方法名
    在這里插入圖片描述

class范圍

  • 我們首先需要在一個自定義方法前寫上fixture的注解,并且將范圍設置為class
    • 當我們在該文件內不設置class類時,如果將autoclass設置為True,那么pytest會將每一個方法都視為一個類,每一個方法都會調用該fixture
      在這里插入圖片描述
    • 當我們將這些方法都放進一個類時,那么只有類最開始會調用一次fixture
      在這里插入圖片描述
    • 如果該文件內有很多個類,我們只想讓其中的某一個類調用fixture,那么只需要將autouse設為False,并且在某一個類中的某一個方法的形參上加上該fixture即可
      在這里插入圖片描述

module范圍

  • 我們首先需要在一個自定義方法前寫上fixture的注解,并且將范圍設置為module
    • 如果我們將autouse設為false,并且在多個方法和類中加上該fixture,那么整個py文件也只會調用一次fixture,且是在第一次加上該fixture的位置處調用
      在這里插入圖片描述
    • 如果我們將autouse設為True,那么只會在整個py文件的最開始調用一次fixture
      在這里插入圖片描述

session范圍

  • 我們首先需要在對應目錄下創建一個新文件方法前寫上fixture的注解,并且將范圍設置為session
    • 然后我們可以在控制臺用pytest來運行該目錄,可以看到對于一次運行多個文件,fixture也只調用了一次,且是在最開始調用的
      在這里插入圖片描述

conftest.py

  • 我們可以將fixture的定義放在conftest.py方法內部,統一管理

  • conftest.py為固定格式,不可以修改名字

  • 使用conftest.py文件中的方法時,無需導入,直接在方法的參數處引入形參即可

  • conftest.py僅作用于當前所處文件夾和下屬文件夾
    在這里插入圖片描述

  • 如果在conftest.py中,范圍為function的fixture,設置autouse為True,那么當前所處文件夾和下屬文件夾的所有測試用例都會自動調用該fixture
    在這里插入圖片描述

    • 一個測試用例可以接收多個fixture
      在這里插入圖片描述

fixture通過return返回數據

  • 我們可以在fixture中使用return來返回數據,供其他測試用例調用
    在這里插入圖片描述
  • 在測試用例中,我們將fixture方法名作為實參傳入后,pytest會自動將該fixture的返回值傳給該同名形參,因此我們可以在后續代碼中直接使用
    在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918568.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918568.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918568.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DAY 43 復習日

作業: kaggle找到一個圖像數據集,用cnn網絡進行訓練并且用grad-cam做可視化 劃分數據集 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader impo…

Flink運行時的實現細節

一、Flink集群中各角色運行架構先說Flink集群中的角色吧,有三個分別是客戶端(Client)、JobManager、TaskManager。客戶端負責接收作業任務并進行解析,將解析后的二進制數據發送給JobManager;JobManager是作業調度中心,負責對所有作…

思科、華為、華三如何切換三層端口?

三層交換機融合了二層交換技術與三層轉發技術,具備強大的網絡功能。主流廠商(思科、H3C、華為)的三層交換機均支持二層端口與三層端口的相互切換,但具體命令存在差異。本文將詳細介紹三大廠商設備的端口切換方法及相關知識。一、各…

springboot的基礎要點

Spring Boot 的核心設計理念是 ??"約定優于配置"??(Convention Over Configuration),旨在簡化 Spring 應用的初始搭建和開發過程。以下是需要掌握的核心基礎要點:?一、核心機制??自動配置 (Auto-Configuration)?…

lesson36:MySQL從入門到精通:全面掌握數據庫操作與核心原理

目錄 一、引言:為什么選擇MySQL? 二、MySQL安裝與登錄配置 2.1 環境準備 2.2 登錄指令詳解 三、數據庫核心操作 3.1 數據庫生命周期管理 3.2 數據庫存儲引擎選擇 四、數據表設計與操作 4.1 表結構創建(含數據類型詳解) …

Spring源碼解析 - SpringApplication run流程-prepareContext源碼分析

prepareContext源碼分析 private void prepareContext(DefaultBootstrapContext bootstrapContext, ConfigurableApplicationContext context,ConfigurableEnvironment environment, SpringApplicationRunListeners listeners,ApplicationArguments applicationArguments, Bann…

HIS系統:醫院信息化建設的核心,采用Angular+Java技術棧,集成MySQL、Redis等技術,實現醫院全業務流程管理。

HIS系統在醫院信息化建設中扮演著核心的角色。它是一個綜合性的信息系統,旨在管理和運營醫院的各種業務,包括門診、住院、財務、物資、科研等。技術細節:前端:AngularNginx后臺:JavaSpring,SpringBoot&…

深度學習-卷積神經網絡-LeNet

卷積神經網絡是一種專門用于處理具有網格結構數據(如圖像、音頻等)的深度學習模型。它通過卷積層自動提取數據中的特征,利用局部連接和參數共享的特性減少了模型的參數數量,降低了過擬合的風險,同時能夠有效地捕捉數據…

【Java項目與數據庫、Maven的關系詳解】

Java項目與數據庫、Maven的關系詳解 一、Java項目是否都需要連接本地數據庫? 不一定,這取決于項目類型和需求: 1. 需要數據庫的項目類型項目類型數據庫作用典型場景Web應用存儲用戶數據/業務數據電商系統、CMS服務端程序持久化數據金融交易系…

兩個Maven工程,使用idea開發,工程A中依賴了工程B,改了工程B,工程A如何獲取最新代碼

兩個Maven工程,使用idea開發,工程A中依賴了工程B,改了工程B,工程A如何獲取最新代碼 如果工程B的版本是快照,那么如下。 步驟一 工程B 執行 clean package install deploy 步驟二 工程A 刷新Maven

奧比中光與地平線、地瓜機器人達成戰略合作,攜手推動機器人智能化

摘要:機器人“慧眼”與“智腦”強強聯合!8月11日,奧比中光與地平線及其控股子公司地瓜機器人在北京簽訂合作協議,雙方將在機器人智能化領域展開深度合作,充分發揮各自的技術與產品優勢,攜手推動機器人產業的…

【Linux】Tomcat

Tomcat簡介Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬于輕量級應用服務器,在中小型系統和 并發訪問用戶不是很多的場合下被普遍使用,Tomcat 具有處理HTML頁面的功能,它還是一個Servlet和 JSP容器Tomcat的使用安裝ja…

Putting it all together 將所有內容整合在一起

官方鏈接 https://www.youtube.com/watch?vAa_FAA3v22g&t1s Task1 Putting It All Together 將所有內容整合在一起 圖片版 文字版 Putting It All Together 將所有內容整合在一起 From the previous modules, youll have learned that quite a lot of things go on b…

Python 閉包詳解:從變量作用域到實戰案例

一、變量作用域基礎在 Python 中,變量根據作用范圍可分為三類:全局變量:定義在函數外部的變量,作用范圍是整個程序。如果在函數內部需要修改全局變量,必須使用global關鍵字聲明。局部變量:定義在函數內部的…

Docker 跨主機容器之間的通信macvlan

默認一個物理網卡,只有一個物理mac地址,虛擬多個mac地址 缺點:每次需要手動配置ip地址,容易ip地址沖突。類似于保存到execl表格里面。 兩臺物理機: docker-01和docker-02 創建macvlan網絡 [rootdocker-01 ~]# docker n…

android 換膚框架詳解1-換膚邏輯基本

android 換膚框架詳解1-換膚邏輯基本-CSDN博客 android 換膚框架詳解2-LayoutInflater源碼解析-CSDN博客 android 換膚框架詳解3-自動換膚原理梳理-CSDN博客 換膚框架流程 1,通過AssetManager獲取換膚的資源文件 2,通過原文件中的resId獲取到res名稱…

NEON性能優化總結

轉自 NEON優化:性能優化經驗總結-CSDN博客 NEON優化:性能優化經驗總結 1. 什么是 NEON Arm Adv SIMD 歷史 2. 寄存器 3. NEON 命名方式 4. 優化技巧 5. 優化 NEON 代碼(Armv7-A內容,但區別不大) 5.1 優化 NEON 匯編代碼 …

計算機網絡摘星題庫800題筆記 第2章 物理層

第2章 物理層2.1 物理層概述題組闖關1.采用以下哪種設備,可以使數字信號傳輸得更遠 ( )。 A. 放大器 B. 中繼器 C. 網橋 D. 路由器1.【參考答案】B 【解析】選項 A 放大器只是單純地放大信號、抑制噪音和干擾。選項 B 中繼器是把一根線纜中的電或者光信號傳遞給另一…

導入文件到iPhone實現

我們有時候開發需要加載一些自己的文件&#xff0c;這個時候就需要導入文件到iPhone等設備。在info里面open as source code&#xff0c;加入如下配置&#xff1a;<!-- 開啟 iTunes / Finder 文件共享 --><key>UIFileSharingEnabled</key><true/>或者o…

Ubuntu Server系統安裝磁盤分區方案

最近打算把家里的舊電腦利用起來&#xff0c;裝上Ubuntu Server 24.04.3 LTS作為一個家用NAS服務器&#xff0c;但是給舊電腦安裝系統時遇到了一些問題&#xff0c;遂記錄下來 GPT分區與MBR分區 GPT 指的是 GUID Partition Table&#xff08;全局唯一標識分區表&#xff09;&am…