Pytest 測試發現機制詳解:自動識別測試函數與模塊

概述

在編寫自動化測試時,如何讓 Pytest 自動找到你的測試代碼 是一個非常基礎但重要的問題。Pytest 通過其強大的 測試發現(Test Discovery)機制,能夠自動掃描項目目錄、識別測試模塊和測試函數,從而大大簡化了測試流程。

本文將為你詳細講解 Pytest 的測試發現機制,包括其基本原理、常見命名規則、自定義配置方式,并結合實操示例幫助你更好地理解和使用它。

什么是測試發現?

測試發現(Test Discovery) 是指 Pytest 在執行 pytest 命令時,會根據一定的規則自動查找并運行所有符合條件的測試模塊和測試函數的過程。

這種“約定優于配置”的設計使得開發者無需手動注冊測試用例,極大地提高了測試效率和可維護性。

測試發現的基本原理

Pytest 會從當前工作目錄或指定路徑開始遞歸搜索以下內容:

匹配測試模塊(文件)

  • 文件名以 test_ 開頭 或 以 _test 結尾。
  • 示例:test_sample.pysample_test.py
    在這里插入圖片描述

匹配測試函數

  • 函數名以 test_ 開頭。
  • 示例:def test_add():
    在這里插入圖片描述

匹配測試類

  • 類名以 Test 開頭(且不帶 __init__ 方法)。
  • 示例:class TestMultiplyFunction:
    在這里插入圖片描述

匹配測試方法

  • 方法名以 test_ 開頭。
  • 示例:d

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

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

相關文章

MySQL 時間日期函數

時間日期類型 MySQL中主要支持以下幾種時間日期類型: DATE - 日期類型 格式:YYYY-MM-DD范圍:1000-01-01 到 9999-12-31示例:2023-05-20 TIME - 時間類型 格式:HH:MM:SS范圍:-838:59:59 到 838:59:59示例&…

408第三季part2 - 計算機網絡 - 物理層

理解 這里有8個波形,每個波形代表一個馬原,一個馬原代表多個比特,這里3個比特 求波特率就直接2W 求比特率就要乘log2V 這塊記兩公式就行,一個下面一個上面 題目 4個相位加4種幅度就是有16種波形 這里無噪聲就是奈奎斯特定理 這…

iOS 集成RN Installing glog (0.3.5)報錯的解決方案

在集成執行RN bundle exec pod install 命令到Installing glog (0.3.5)時報錯,報錯信息如下: Installing glog (0.3.5) [!] /bin/bash -c set -e #!/bin/bash # Copyright (c) Facebook, Inc. and its affiliates. # # This source code is licensed under the MIT license …

【進階篇-消息隊列】——MQTT協議如何支持海量的在線IoT設備

目錄 一、什么是IoT二、MQTT 和其他消息隊列的傳輸協議有什么不同三、如何選擇 MQTT 產品四、MQTT 集群如何支持海量在線的 IoT 設備五、總結本文來源:極客時間vip課程筆記 一、什么是IoT IoT,也就是物聯網,物聯網這個詞兒,它的含義還不那么直觀,但你看它的英文:IoT,也就…

Chat Model API

聊天模型API為開發人員提供了將人工智能聊天完成功能集成到應用程序中的能力。它利用預訓練的語言模型,如GPT(生成預訓練轉換器),以自然語言對用戶輸入生成類似人類的響應。 API通常通過向人工智能模型發送提示或部分對話來工作&…

【黑群暉】自組硬件/舊電腦nas改造(三)——使用Jellyfin創建家庭影音庫

一、打開套件中心安裝Jellyfin套件 如果找不到Jellyfin套件,需要手動添加三方套件源: 《群暉NAS必學技能:一鍵解鎖三方套件源,PT下載影音播放全搞定!》 二、配置Jellyfin 訪問http://群暉IP:8096 進入Jellyfin初始化界…

泰山派編譯debian報錯 lb config: unrecognized option ‘--debootstrap-options‘

簡介 最近在編譯泰山派 編譯buildroot系統正常,但是編譯debian時總是報錯說lb 找不到一些參數,如下圖所示,應該當前的版本較低 不支持這些參數,我試了很多方法 升級次版本 但是提示的是最新的,最后經過一番搜索 在官方…

跨境證券交易系統合規升級白皮書:全鏈路微秒風控+開源替代,護航7月程序化交易新規落地

1 行業變革:四重驅動力重塑證券交易系統 當前全球證券行業正處于深刻變革期,跨境金融活動面臨前所未有的機遇與挑戰。今日央行開展的1310億元7天期逆回購操作,以及國家外匯管理局向合格境內機構投資者(QDII)新增發放30.8億美元投資額度等政策…

Node.js核心API(fs篇)

前言:在Node.js生態系統中,文件系統操作是后端開發不可或缺的一部分。fs模塊作為Node.js核心API的重要組成部分,提供了與文件系統交互的能力,涵蓋了從基礎的文件讀寫到復雜的目錄操作等功能。現代JavaScript開發中,處理…

HarmonyOS學習2---Stage模型

1、工程目錄結構 1.1、入口 UIAbility 1.2、入口page 1.3、配置文件 1、配置文件 1)應用級配置文件 --- app.json5 2)模塊級配置文件 --- module.json5 3、oh-package.json5 4、資源文件 1)element目錄 2)media目錄 3&#xff09…

【軟件工程】軟件復刻項目的完整流程指南

軟件復刻項目的完整流程指南 第一章、概述 一、前期準備:明確目標與合規性 1. 法律風險評估 版權排查:確認目標軟件的 UI 設計、代碼、商標是否受保護(如界面元素、核心算法是否申請專利)。規避侵權:避免直接復制 …

淺談Python 中的當前工作目錄與腳本目錄

Python 中的 os.path.exists() 和 __file__ 使用陷阱:工作目錄 ≠ 腳本目錄 在使用 os.path.exists() 或 open() 等函數操作文件路徑時,筆者常常忽略一個關鍵概念:當前運行目錄(Current Working Directory, CWD)并不等…

iOS檢測并阻止騷擾電話的方法

檢測并阻止騷擾電話 你可以在 iPhone 上使用“將未知來電者設置為靜音”或第三方 App 來阻止騷擾電話。 打開“將未知來電者設置為靜音” 在 iOS 13 及更高版本中,你可以打開“靜音未知來電”,以免接到陌生人的來電。這一功能可以阻止那些你從未聯系過…

TensorFlow源碼深度閱讀指南

TensorFlow源碼深度閱讀指南 本文基于《TensorFlow內核剖析》附錄A的代碼閱讀方法論,結合實例解析核心源碼閱讀技巧(含關鍵圖示):一、源碼閱讀的四個維度 1. 分層切入策略(圖A-1) #mermaid-svg-ooLMzaWU5ky…

設計模式-責任鏈模式、策略模式

責任鏈模式 Chain of Responsibility(職責鏈)—對象行為型模式定義:使多個對象都有機會處理請求,從而避免了請求的發送者和接受者之間的耦合關系。將這些對象連成一條鏈,并沿著這條鏈傳遞該請求,直到有對象…

泛微e-cology remarkOperate遠程命令執行漏洞

【高危】泛微e-cology remarkOperate遠程命令執行漏洞 漏洞描述 泛微e-cology是泛微公司開發的協同管理應用平臺。 受影響版本中,接口 /api/workflow/reqform/remarkOperate 存在 SQL 注入漏洞,multipart 類型參數 requestid 直接拼接進 SQL 語句&…

Redis常用操作

1:redis常用操作: package com.shunaier.hhhh.biz.utils;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.shunaier.hhhh.common.enums.SystemErrorEnum; import com.shunaier.hhhh.common.exception.SNEB…

mybatis-plus-01-環境初始化及簡單應用

文章目錄 【README】【1】springboot集成mybatis-plus配置【1.1】目錄結構【相關說明】 【1.2】代碼示例【pom.xml】【application.properties】【MybatisPlusNoteController】【UserAppService】【UserMapper】【UserPO】【建表語句】 【2】演示 【README】 本文代碼參見&…

VR小鼠解剖虛擬仿真:開啟生命科學教育新視野?

VR 小鼠解剖虛擬仿真,是一項將虛擬現實(VR)技術深度融入小鼠解剖學習與研究過程的創新應用,即 VR 小鼠解剖虛擬仿真。其核心原理在于,借助 VR 技術所構建的高度逼真的虛擬環境,突破了傳統小鼠解剖在時間、空間以及實體操作上的諸多…

計算機網絡(網頁顯示過程,TCP三次握手,HTTP1.0,1.1,2.0,3.0,JWT cookie)

前言 最近一直在后端開發的面經🙌,里面涉及到了好多計算機網絡的知識😁,在這里以問題的形式寫一個學習筆記(其中參考了: JavaGuide 和 小林coding 這兩個很好的學習網站😘) 1.當鍵入網址后&am…