(1)pytest簡介和環境準備

1. pytest簡介

  pytest是python的一種單元測試框架,與python自帶的unittest測試框架類似,但是比unittest框架使用起來更簡潔,效率更高。根據pytest的官方網站介紹,它具有如下特點:

  • 非常容易上手,入門簡單,文檔豐富,文檔中有很多實例可以參考
  • 能夠支持簡單的單元測試和復雜的功能測試
  • 支持參數化
  • 執行測試過程中可以將某些測試跳過(skip),或者對某些預期失敗的case標記成失敗
  • 支持重復執行(rerun)失敗的case
  • 支持運行由nose, unittest編寫的測試case
  • 可生成html報告
  • 方便的和持續集成工具jenkins集成
  • 可支持執行部分用例
  • 具有很多第三方插件,并且可以自定義擴展

2. 安裝pytest

  ?pytest是python語言的一個測試的第三方的庫,那么我們首先需要-安裝它。

2.1 安裝方法

  因為pytest是python語言的一個測試的第三方的庫,所以安裝方法和第三方類庫一樣通過命令,命令如下:

pip install -U pytest

?

2.2 查看是否安裝成功

  出現如下紅色圈起的部分,會簡單點英文的,都知道說明安裝成功

?

2.3 查看安裝版本

2.3.1pip show?pytest查看安裝的版本

pip show pytest

?

2.3.2pytest --version查看安裝的版本

pytest --version

?

3. 實踐一下

  1.新建一個test.py文件,(文件命名以test_*開頭或者*_test結尾)

3.1 代碼實現:

?

3.2 參考代碼:

# coding=utf-8
# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行
# 1.導入模塊# content of test_bjhg_sample.py
def func(x):return x +1def test_answer():assert func(3)==5

3.3 運行結果:

3.3.1 第一種運行代碼方法

  在terminal中輸入pytest(或者輸入py.test也可以),運行代碼后,控制臺打印如下圖的結果

?

3.3.1 第二種運行代碼方法

  打開test.py所在的文件夾,cmd窗口輸入:pytest(或者輸入py.test也可以),運行代碼后,控制臺打印如下圖的結果

?

  3.pytest運行規則:**查找當前目錄及其子目錄下以test_*.py或*_test.py文件,找到文件后,在文件中找到以test開頭函數并執行。**

4. 執行測試類

  1.前面是寫的一個test開頭的測試函數,當用例用多個的時候,寫函數就不太合適了。這時可以把多個測試用例,寫到一個測試類里。

4.1 代碼實現:

?

4.2 參考代碼:

# coding=utf-8
# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行
# 1.導入模塊# content of test_class.py
class TestClass:def test_one(self):x = "this"assert "h" in xdef test_two(self):x = "hello"assert hasattr(x, "check")

4.3 運行結果:

  運行代碼后,控制臺打印如下圖的結果

?

  2.打開cmd,cd到test_class.py的文件目錄,如果只想運行這個文件,加上-q參數,-q參數用來指定執行的文件,不指定就執行該文件夾下所有的用例。pytest會找到符合規則(test_.py和_test.py)所有測試,因此它發現兩個test_前綴功能。 如果只想運行其中一個,可以指定傳遞文件名test_class.py來運行模塊:

  備注: -q, --quiet decrease verbosity( 顯示簡單結果)

py.test -q test_class.py

  第一次測試通過,第二次測試失敗。 您可以在斷言中輕松查看失敗的原因。

5. 使用規則

測試文件以test_開頭(以_test結尾也可以)
測試類以Test開頭,并且不能帶有?__init__?方法
測試函數以test_開頭
斷言使用assert

?

?

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

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

相關文章

實驗設計與分析(第6版,Montgomery)第5章析因設計引導5.7節思考題5.5 R語言解題

本文是實驗設計與分析&#xff08;第6版&#xff0c;Montgomery著&#xff0c;傅玨生譯) 第5章析因設計引導5.7節思考題5.5 R語言解題。主要涉及方差分析&#xff0c;正態假設檢驗&#xff0c;殘差分析&#xff0c;交互作用圖。 dataframe <-data.frame( wrapc(17,20,12,9,…

線程池的詳細知識(含有工廠模式)

前言 下午學習了線程池的知識。重點探究了ThreadPoolExecutor里面的各種參數的含義。我詳細了解了這部分的知識。其中有一個參數涉及工廠模式&#xff0c;我將這一部分知識分享給大家~ 線程池的詳細介紹(含工廠模式) 結語 分享到此結束啦。byebye~

嵌入式開發學習(第二階段 C語言筆記)

內存操作 我們對于內存操作需要依賴于string.h頭文件中相關的函數庫。 內存操作函數 內存填充 頭文件&#xff1a;#include <string.h> 函數原型&#xff1a; void* memset(void *s,int c,size_t n)函數功能&#xff1a;將內存塊s的前n個字節填充為c&#xff0c;一般…

C++學習-入門到精通【9】面向對象編程:繼承

C學習-入門到精通【9】面向對象編程&#xff1a;繼承 目錄 C學習-入門到精通【9】面向對象編程&#xff1a;繼承一、基類與派生類CommunityMember類的繼承層次結構如何定義一個派生類呢 二、基類和派生類間的關系1.創建并使用類CommissionEmployee2.不使用繼承創建類BasePlusCo…

黑馬k8s(十七)

一&#xff1a;高級存儲 1.高級存儲-pv和pvc介紹 2.高級存儲-pv 3.高級存儲-pvc 最后一個改成5gi pvc3是沒有來綁定成功的 pv3沒有綁定 刪除pod、和pvc&#xff0c;觀察狀態&#xff1a; 4.高級存儲-pc和pvc的生命周期 二&#xff1a;配置存儲 1.配置存儲-ConfigMap 2.配…

cf每日刷題c++

目錄 Simple Repetition&#xff08;1000&#xff09; Fashionable Array&#xff08;800&#xff09; Kevin and Arithmetic(800) Permutation Warm-Up(800) Game of Mathletes(900) LRC and VIP(800) Simple Repetition&#xff08;1000&#xff09; https://codeforc…

歷年中國科學技術大學計算機保研上機真題

2025中國科學技術大學計算機保研上機真題 2024中國科學技術大學計算機保研上機真題 2023中國科學技術大學計算機保研上機真題 在線測評鏈接&#xff1a;https://pgcode.cn/school?classification1 拆分數字 題目描述 給定一個數字&#xff0c;拆分成若干個數字之和&#xff…

PHP學習筆記(十一)

類常量 可以把在類中始終保持不變的值定義為常量&#xff0c;類常量的默認可見性是public。 接口中也可以定義常量。 可以用一個變量來動態調用類&#xff0c;但該變量的值不能為關鍵字 需要注意的是類常量只為每個類分配一次&#xff0c;而不是為每個類的實例分配。 特殊的…

Nginx 性能優化全解析:從進程到安全的深度實踐

一、進程優化&#xff1a;釋放硬件性能潛力 Nginx 通過多工作進程處理請求&#xff0c;合理配置進程參數能充分利用 CPU 資源&#xff0c;避免資源浪費。 1.1 worker_processes 參數詳解 worker_processes用于設置 Nginx 工作進程的數量&#xff0c;它直接影響 Nginx 對 CP…

中國移動咪咕助力第五屆全國人工智能大賽“AI+數智創新”專項賽道開展

第五屆全國人工智能大賽由鵬城實驗室主辦&#xff0c;新一代人工智能產業技術創新戰略聯盟承辦&#xff0c;華為、中國移動、鵬城實驗室科教基金會等單位協辦&#xff0c;廣東省人工智能與機器人學會支持。 大賽發布“AI圖像編碼”、“AI增強視頻質量評價”、“AI數智創新”三大…

《 PyTorch 2.3革新:torch.compile自動生成CUDA優化內核全解》

CUDA作為NVIDIA推出的并行計算平臺和編程模型&#xff0c;為GPU計算提供了強大的支持&#xff0c;但手動優化CUDA代碼不僅需要深厚的專業知識&#xff0c;而且過程繁瑣、耗時費力&#xff0c;torch.compile的出現&#xff0c;猶如一道曙光&#xff0c;為解決這一困境帶來了全新…

mysql-mysql源碼本地調試

前言 先進行mysql源碼本地編譯&#xff1a;mysql源碼本地編譯 1.本地調試 這里以macbook為例 1.使用vscode打開mysql源碼 2.創建basedir目錄、數據目錄、配置文件目錄、配置文件 cd /Users/test/ mkdir mysqldir //創建數據目錄和配置目錄 cd mysqldir mkdir conf data …

帶你手寫React中的useReducer函數。(底層實現)

文章目錄 前言一、為什么需要 Reducer&#xff1f;二、Reducer 的核心概念1. Reducer 函數2. useReducer 鉤子 三&#xff0c;手寫react中的useReducer 總結 前言 在 React 開發中&#xff0c;useReducer 是管理復雜狀態邏輯的利器。它類似于 Redux 的簡化版&#xff0c;允許我…

用wireshark抓了個TCP通訊的包

昨兒個整理了下怎么用wireshark抓包&#xff0c;鏈接在這里&#xff1a;捋捋wireshark 今天打算抓個TCP通訊的包試試&#xff0c;整體來說比較有收獲&#xff0c;給大家匯報一下。 首先就是如何搞到可以用來演示TCP通訊的客戶端、服務端&#xff0c;問了下deepseek&#xff0c;…

運維 pgsql 安裝完后某次啟動不了

pgsql 安裝完后某次啟動不了 錯誤 data directory "/usr/local/postgresql/data" has invalid permissions 安裝成功后一直可以 后面同事敲了 chmod -R 777 /usr/local 導致不行 改到了 /usr/local/postgresql/data 權限 /usr/local/postgresql/data的權限有限…

查看·電腦安裝·的 .NET 版本

方法 一&#xff1a;使用命令提示符或 PowerShell 打開命令提示符或 PowerShell。 輸入以下命令&#xff1a;dotnet --version 按下回車鍵。 命令輸出將顯示已安裝的 .NET 版本。 方法二&#xff1a;使用 .NET Framework 控制面板 打開控制面板。 點擊“程序”。 點擊“程序…

Linux WiFi 模組使用及故障排查整理文檔

Linux WiFi 模組使用及故障排查整理文檔 1. STA 模式下 WiFi 延時不穩定問題解決方法&#xff1a; 2. Power Saving 機制說明3. AP 模式下 WiFi 設置4. RTL8821CS AP 模式下 Windows 客戶端異常斷開問題問題描述問題原因解決方案步驟 1&#xff1a;修改 dnsmasq 配置步驟 2&…

mac mini m4命令行管理員密碼設置

附上系統版本圖 初次使用命令行管理員&#xff0c;讓輸入密碼&#xff0c;無論是輸入登錄密碼還是賬號密碼&#xff0c;都是錯的&#xff0c;百思不得其解&#xff0c;去網上搜說就是登錄密碼啊 直到后來看到了蘋果官方的文檔 https://support.apple.com/zh-cn/102367 https…

棧內行為分析

棧內行為分析 一、源碼分析 我們以以下簡單的 C 程序為例&#xff0c;通過 GDB 動態調試分析函數調用過程中的棧內布局變化&#xff1a; #include <stdio.h> int add(){int a 10;int b 20;return (a b); }int main() {add();return 0; }編譯為 32 位程序&#xff1a…

老舊設備數據采集破局 AI圖像解析如何讓質檢LIMS系統煥發新生

在實驗室數字化進程中&#xff0c;大量服役超過 10 年的老舊設備成為數據采集的 “攔路虎”&#xff1a;指針式儀表盤需人工讀取、紙質原始記錄靠手工錄入、非標準接口設備數據無法自動獲取…… 某化工實驗室因 15 臺老舊設備數據采集耗時占比達 40%&#xff0c;檢測效率長期滯…