pytest中mark的使用

在pytest中,mark(標記)是用于對測試用例進行分類、篩選或附加元數據的重要功能。以下是其核心使用方法:

1. ?基本標記定義與使用?

?注冊標記?:在pytest.ini中預先定義標記(避免運行時警告):

[pytest]
markers =smoke: 冒煙測試用例slow: 執行耗時較長的用例

?標記測試函數/類?:

@pytest.mark.smoke
def test_login():assert True@pytest.mark.slow
class TestPerformance:def test_response_time(self):assert True

2. ?常用內置標記?

?跳過測試?:

@pytest.mark.skip(reason="功能暫未完成")
def test_unimplemented():pass

?預期失敗?:

@pytest.mark.xfail(reason="已知兼容性問題")
def test_legacy_feature():assert False

3. ?參數化標記(數據驅動)?

@pytest.mark.parametrize("input,expected", [(1, 2), (3, 4)])
def test_add_one(input, expected):assert input + 1 == expected

4. ?自定義標記的篩選?

命令行執行特定標記的測試:

pytest -m "smoke"          # 只運行冒煙測試
pytest -m "not slow"       # 排除耗時用例
pytest -m "smoke or slow"  # 組合邏輯

5. ?動態添加標記?

通過鉤子函數動態標記(如根據執行時間):

def pytest_collection_modifyitems(items):for item in items:if "api" in item.nodeid:item.add_marker(pytest.mark.api)

注意事項:
未注冊的自定義標記會觸發警告,需在pytest.ini中聲明。
標記支持繼承(類標記會應用到所有方法)。
可通過pytest --markers查看所有可用標記。

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

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

相關文章

STM32N6--NPU簡單介紹

關鍵詞:STM32N6、生物神經元、神經網絡處理單元(NPU)、數據流處理 參考鏈接: RM0486 Reference manual STM32N647/657xx Arm-based 32-bit MCUsST_中文論壇【資料合集】STM32N6超全資料合集(定期更新)B站_…

一款開源免費、通用的 WPF 主題控件包

前言 今天大姚給大家分享一款開源免費(MIT License)、通用的 WPF 主題控件包:Rubyer WPF。 WPF介紹 WPF是一個強大的桌面應用程序框架,用于構建具有豐富用戶界面的 Windows 應用。它提供了靈活的布局、數據綁定、樣式和模板、動…

windows安裝python環境以及對應編輯器的詳細流程

windows安裝python環境以及對應編輯器的詳細流程 一、安裝 Python 環境 步驟 1:下載 Python 安裝包 訪問 Python 官網:https://www.python.org/downloads/windows/選擇最新穩定版本(如 Python 3.12.x),點擊 Download W…

高保真組件庫:下拉多選

制作一個高保真的下拉多選需要具備多種交互事件。 拖拽一個文本框并命名為“下拉文本輸入框”和一個向下的箭頭組合在一起,外觀上看起來是下拉組件。為了美觀調整一些邊框顏色、圓角、文字左邊距等。 拖拽一個矩形作為下拉選項的容器,啟動陰影xy都為0 制作下拉選項:拖拽一個…

sqli-labs靶場通關筆記:第1-4關 聯合注入

第1關:單引號閉合1.這是第1關的界面,讓我們以id作為參數輸入,方式為數值,這里輸入?id1看一下。2.顯示了id1的用戶名和密碼。分析:在sql注入漏洞中,第一步是要尋找注入點,即可以輸入參數的地方&…

和服腰封改造:3種解構主義造型的東方美學新解

和服腰封改造:3種解構主義造型的東方美學新解在東京原宿的小巷里,一場關于和服腰封的"溫柔革命"正在悄然發生。年輕設計師們將傳統寬腰帶拆解重構,創造出既保留東方神韻又充滿當代氣息的造型藝術。正如一位新銳設計師所說&#xff…

什么是強化學習(RL)--3

如果reward大多數情況下都是0,只有少數是很大的值。這種情況下就是稀疏reward的問題。比如你要教機械手臂拴螺絲,只有最后把螺絲栓進去才可以,其余機械手臂的位置都不可以。額外的reward幫agent學習。reward shaping射擊游戲cs,這個游戲中&am…

彩虹云商城全解源碼系統|人工客服系統

核心升級亮點 人工客服系統:新增智能工單在線IM雙模式多端同步:PCH5小程序APP四端數據實時互通支付升級:支持數字人民幣收款安全加固:內置Web應用防火墻(WAF) 部署教程 ? B站視頻教程 包含: 寶塔環境配置&#xf…

川翔云電腦:突破硬件極限,重構設計生產力范式

一、硬核配置:顯存與算力的雙重革命川翔云電腦提供從 RTX 2080 Ti 到 RTX 4090 Plus 的全系列 GPU 機型,其中旗艦級 4090 Plus 單卡配備48GB 超大顯存,較傳統 4090 顯存翻倍,可流暢加載 1200 萬面數的超復雜模型(如《黑…

深入解析 TCP 連接狀態與進程掛起、恢復與關閉

文章目錄深入解析 TCP 連接狀態與進程掛起、恢復與關閉一、TCP 連接的各種狀態1. **LISTEN**(監聽)2. **SYN_SENT**(SYN 已發送)3. **SYN_RECEIVED**(SYN 已接收)4. **ESTABLISHED**(已建立&…

在mac m1基于llama.cpp運行deepseek

lama.cpp是一個高效的機器學習推理庫,目標是在各種硬件上實現LLM推斷,保持最小設置和最先進性能。llama.cpp支持1.5位、2位、3位、4位、5位、6位和8位整數量化,通過ARM NEON、Accelerate和Metal支持Apple芯片,使得在MAC M1處理器上…

多模態大語言模型arxiv論文略讀(154)

Visual-Oriented Fine-Grained Knowledge Editing for MultiModal Large Language Models ?? 論文標題:Visual-Oriented Fine-Grained Knowledge Editing for MultiModal Large Language Models ?? 論文作者:Zhen Zeng, Leijiang Gu, Xun Yang, Zhan…

Python PDF處理庫深度對比:PyMuPDF、pypdfium2、pdfplumber、pdfminer的關系與區別

Python PDF處理庫深度對比:PyMuPDF、pypdfium2、pdfplumber、pdfminer的關系與區別前言1. 庫的基本介紹1.1 PyMuPDF (fitz)1.2 pypdfium21.3 pdfplumber1.4 pdfminer2. 關系圖譜3. 核心區別對比3.1 性能對比3.2 功能對比4. 代碼示例對比4.1 基本文本提取PyMuPDFpypd…

制作 ext4 文件系統

按以下步驟操作可以將一個文件夾制作成 Android 可用的 ext4 格式的 img 文件:方法 1:使用標準 Linux 工具(推薦) 步驟 1:安裝必要工具 sudo apt update sudo apt install e2fsprogs android-sdk-libsparse-utils # 適…

Flink自定義函數

一、UDF 核心原理 Flink 自定義函數(UDF)是擴展 Table API/SQL 能力的核心機制,允許將自定義邏輯嵌入查詢。其設計遵循以下原則: 1. 函數類型體系類型輸入輸出關系核心用途標量函數(ScalarFunction)0~N 個標…

【AI學習】大模型微調實踐

參加了書生?浦語(InternLM)端側小模型論文分類微調練習打榜賽 具體的實踐教程在: https://aicarrier.feishu.cn/wiki/D7kZw9Nx4iMyDnkpL0Gc5giNn5g 折騰了十多天,各種嘗試,AB榜單終于進入了前十都,累死 …

ElementUI:高效優雅的Vue.js組件庫

Hi,我是布蘭妮甜 !在當今快節奏的前端開發領域,選擇一個功能強大、設計優雅且易于使用的UI組件庫至關重要。ElementUI作為基于Vue.js的知名組件庫,憑借其豐富的組件體系、一致的設計語言和出色的開發體驗,已成為眾多企…

Java Stream流介紹及使用指南

背景在Java 8之前,處理集合數據(如List, Set, Map)通常意味著編寫冗長的、以操作為中心的代碼:創建迭代器、使用for或while循環遍歷元素、在循環體內進行條件判斷和操作、收集結果。這種方式雖然有效,但不夠簡潔、可讀…

JDK 1.7 vs JDK 1.8

JDK版本比較 Java平臺的兩次重大飛躍:JDK 7的穩定優化與JDK 8的革命性創新引言:Java的進化之路Java作為企業級開發的支柱語言,其版本更新直接影響著全球數百萬開發者。JDK 1.7(2011年發布)和JDK 1.8(2014年…

張量與維度

3x4x5的張量: x torch.tensor([[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]], [[21, 22, 23, 24, 25], …