pytest 測試報告生成方案有哪些?

在 pytest 中,除了 Allure 和 HTMLTestRunner,還有許多其他生成測試報告的方法和插件。以下是一些常用的方案及其特點:

1. pytest-html(官方推薦)

特點:輕量級、易集成,生成獨立的 HTML 報告。

安裝

pip install pytest-html

使用

pytest --html=report.html --self-contained-html

示例報告

2. pytest-cov(代碼覆蓋率報告)

特點:統計測試覆蓋率,支持 HTML、XML 等格式。

安裝

pip install pytest-cov

使用

pytest --cov=your_project --cov-report html

示例報告

3. pytest-xdist(分布式測試報告)

特點:并行執行測試,生成匯總報告。

安裝

pip install pytest-xdist

使用

pytest -n auto --html=report.html ?# 自動檢測 CPU 核心數并行執行

4. pytest-reportlog(JSON 格式報告)

特點生成結構化的 JSON 報告,便于后續處理

使用

pytest --reportlog=report.json

5. pytest-sugar(美化控制臺輸出)

特點:美化測試執行過程的控制臺輸出,不生成文件報告。

安裝

pip install pytest-sugar

示例輸出

6.?pytest-rerunfailures(失敗重試報告)

特點:自動重試失敗的測試用例,并在報告中標記。

安裝

pip install pytest-rerunfailures

使用

pytest --reruns 3 --html=report.html ?# 失敗重試 3 次

7.?pytest-bdd(行為驅動開發報告)

特點:基于 Gherkin 語法,生成 BDD 風格的測試報告。

安裝

pip install pytest-bdd

示例測試用例

# features/login.feature

Scenario: 登錄成功

??Given 用戶已注冊

??When 用戶輸入正確的用戶名和密碼

??Then 登錄成功

8. pytest-json-report(JSON 報告)

特點:生成詳細的 JSON 格式報告。

安裝

pip install pytest-json-report

使用

pytest --json-report --json-report-file=report.json

9. pytest-testmon(增量測試報告)

特點:只運行變更的測試,生成增量報告。

安裝

pip install pytest-testmon

使用

pytest --testmon ?# 首次運行會記錄狀態

pytest --testmon ?# 后續只運行變更的測試

10. 自定義插件

特點:根據需求開發自定義報告插件。

示例代碼

# conftest.py

import pytest

@pytest.hookimpl(tryfirst=True, hookwrapper=True)

def pytest_runtest_makereport(item, call):

????outcome = yield

????report = outcome.get_result()

????

????if report.when == 'call':

????????print(f"測試 {item.nodeid} 結果: {report.outcome}")

對比與選擇建議

插件

報告格式

特點

適用場景

pytest-html

HTML

簡單易用,適合基礎報告

日常測試

allure-pytest

HTML

功能豐富,支持步驟、附件

正式項目、對外展示

pytest-cov

HTML/XML

代碼覆蓋率統計

質量保障、合規要求

pytest-xdist

匯總報告

并行測試

大型項目、性能優化

pytest-bdd

BDD 風格

業務與技術對齊

敏捷開發、需求溝通

組合使用示例

同時生成 HTML 報告和覆蓋率報告:

pytest --html=report.html --cov=your_project --cov-report html

根據項目需求,你可以選擇單一插件或組合使用多種插件來滿足不同的報告需求。

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

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

相關文章

Unity中EditorPrefs與PlayerPrefs對比分析

Unity中EditorPrefs與PlayerPrefs對比分析 EditorPrefs與PlayerPrefs是Unity引擎中用于數據持久化的兩個核心類,分別用于于編輯器擴展與游戲運行時場景。以下從設計目標、存儲位置、數據類型、生命周期、安全性、使用場景等方面展開對比,并結合代碼示例說…

藍光中的愧疚

藍光中的愧疚活動結束那晚,深圳的空氣吸飽了水汽,沉甸甸地壓在胸口。我站在西鄉社區活動中心冰涼的玻璃門外,目送著最后一個離開的王老師。她關掉門廳的燈,電子門鎖合攏時發出輕微卻尖銳的“嘀”聲,像一根細針扎在我緊…

Linux: network: wireshark: esp attempt to detec null-encrypted esp payloads

最近看到一個pcap文件,里面有esp協議包,而且是明文/沒有加密的消息,為什么wireshark沒有將esp上層的tcp/sip消息沒有解出來。 類似于Info列只有ESP的信息。后來選中了協議選項里的:attempt to detect/decode NULL encrypted ESP p…

10分鐘搭建腳手架:Spring Boot 3.2 + Vue3 前后端分離模板

10分鐘搭建腳手架:Spring Boot 3.2 Vue3 前后端分離模板一、項目結構設計二、后端搭建(Spring Boot 3.2)1. 快速初始化(使用 Spring Initializr)2. 核心配置application.yml跨域配置 CorsConfig.java3. 安全配置Secur…

【軌物方案】分布式光伏電站運維升級智能化系列:老電站的數智化重生

自2010年分布式光伏在國內興起以來,十余年間,市場裝機容量已實現飛躍式增長。長期以來,傳統的人工巡查和抄表模式是它們日常運維的主要手段。然而,隨著電站數量的激增和設備的老化,由此導致的事故頻發,使得…

RAG 技術深度面試題:架構、優化與實踐應用

1. RAG 基礎架構設計 問題:對比單階段檢索(Single-stage Retrieval)與兩階段檢索(Two-stage Retrieval)在 RAG 系統中的架構差異,說明在企業知識庫場景下為何優先選擇兩階段檢索? 答案&#xff…

yolov8通道級剪枝講解(超詳細思考版)

為了提升推理速度并降低部署成本,模型剪枝已成為關鍵技術。本文將結合實踐操作,講解YOLOv8模型剪枝的方法原理、實施步驟及注意事項。 雖然YOLOv8n版本本身參數量少、推理速度快,能滿足大多數工業檢測需求,但谷歌研究表明&#x…

JavaSE:隨機數生成

隨機數在游戲開發、密碼學、模擬測試等場景中扮演著關鍵角色。本文將深入探討Java中兩種主流的隨機數生成技術:Random類和Math.random()方法,并解析背后的類與對象概念,助你全面掌握隨機數生成的核心機制。一、隨機數生成的兩大技術 Java提供…

Android 持久化存儲原理與使用解析

一、核心存儲方案詳解1. SharedPreferences (SP)使用方式:// 獲取實例 SharedPreferences sp getSharedPreferences("user_prefs", MODE_PRIVATE);// 寫入數據 sp.edit().putString("username", "john_doe").putInt("login_cou…

無 sudo 權限的環境下將 nvcc (CUDA Toolkit) 安裝到個人目錄 linux

要在無 sudo 權限的環境下將 nvcc 安裝到 home 個人目錄,你可以手動安裝 CUDA Toolkit 到你的 $HOME 目錄,只需以下幾步即可使用 nvcc 編譯 CUDA 程序。 ? 步驟:本地安裝 CUDA Toolkit(含 nvcc) 下載 CUDA Toolkit Ru…

從指標定義到AI執行流:衡石SENSE 6.0的BI PaaS如何重構ISV分析鏈路

一、痛點:ISV行業解決方案的“三重斷鏈”傳統ISV構建行業分析模塊時面臨的核心挑戰:指標定義碎片化:客戶A的“銷售額”含稅,客戶B不含稅,衍生指標無法復用;分析-執行割裂:發現庫存異常后需人工導…

構建跨平臺遠程醫療系統中的視頻通路技術方案探究

一、遠程醫療走向日常化,音視頻能力成為關鍵基礎設施 隨著醫療數字化與分級診療體系的不斷演進,遠程醫療正從試點探索階段,逐步邁向常態化、標準化應用。從縣域醫院遠程問診、基層醫療協作,到大型三甲醫院的術中協同、專科教學直…

Blackbox Exporter Docker 安裝配置,并與 Prometheus 集成

1. 創建配置文件目錄bashmkdir -p ~/docker/blackbox/config cd ~/docker/blackbox2. 創建 Blackbox Exporter 配置文件 config/blackbox.ymlyamlmodules:http_2xx: # HTTP 可用性檢測(響應 2xx/3xx 狀態碼)prober: httphttp:valid_http_versions: ["HTTP/1.1", &qu…

杰理通用MCU串口+AT指令+485通訊工業語音芯片

一、概述 在現代智能設備與自動化系統中,語音交互功能日益普及,通用 MCU 語音芯片作為核心組件,承擔著關鍵的語音處理任務。其強大的功能不僅體現在語音合成、識別等方面,還包括高效的通信能力。串口 AT 指令 485 通訊模式為通用…

Krpano 工具如何調節全景圖片切割之后的分辨率

文章目錄概要第一步1.1 復制一下這個文件中的key ,打開 krpano Tools.exe第二步 修改切片之后的分辨率修改前的效果修改后的效果概要 前端渲染全景圖模擬3D場景 Krpano 工具 獲取到后的默認圖片分辨率是2048*2048的,如果覺得分辨率低了可以自行在工具中…

物聯網十大應用領域深度解析

一、智能物流技術基礎:RFID、無線傳感器網絡、互聯網與運籌學、供應鏈管理理論結合 應用場景:倉儲管理:RFID標簽實現庫存實時監控,自動補貨系統降低缺貨率。配送優化:通過GPS與物聯網數據分析規劃最優路徑,…

ElasticSearch基礎數據查詢和管理詳解

目錄 一、 ElasticSearch核心概念 1. 全文搜索(Full-Text Search) 2. 倒排索引(Inverted Index) 3. ElasticSearch常用術語 3.1 映射(Mapping) 3.2 索引(Index) 3.3 文檔&…

SSE與Websocket有什么區別?

SSE(Server-Sent Events)和WebSocket都能實現服務器與客戶端的實時通信,但它們在協議設計、應用場景和技術特性上有明顯差異。以下從多個維度對比兩者的區別: 1. 協議基礎 SSE 基于HTTP協議,是HTTP的擴展。使用單向通…

力扣Hot100疑難雜癥匯總

寫在前面 這一篇博客主要用來記錄力扣Hot100中我反復刷,但又反復錯的難題,為了防止秋招手撕的時候尬住,寫這篇博客記錄一下那些容易遺忘而且對我來說難度較大的題目。后面復習的時候重點對著這個名單來刷題。 二叉樹部分 114. 二叉樹展開為…

硬核接線圖+配置步驟:遠程IO模塊接入PLC全流程詳解

遠程IO模塊和PLC(可編程邏輯控制器)的連接涉及多個方面,包括硬件準備、軟件配置、接線方法以及注意事項等。PLC品牌大多分為國產、歐系、美系、日系。國產PLC主要有匯川、臺達、和利時、信捷等品牌;歐美系PLC以西門子、施耐德、羅…