Pytest運(yùn)行方式及參數(shù)使用示例詳解
一、前言
Pytest 共有三種運(yùn)行方式分別是
- 主函數(shù)運(yùn)行方式
- 命令行運(yùn)行方式
- 通過讀取pytest.ini 配置文件運(yùn)行
二、運(yùn)行方式
# test_case01.py class TestDemo1: def test_01_demo(self): print("test_01") def test_02_demo(self): print("test_02")
#模塊2:test_case02.py class TestDemo2: def test_01_demo(self): print("test_02")
2.1 主函數(shù)運(yùn)行
1.運(yùn)行所有測試模塊
新建一個(gè)py文件用于運(yùn)行主函數(shù),右擊選擇文件即可運(yùn)行,如下案例所示
# 運(yùn)行文件:all.py import pytest if __name__ == '__main__': pytest.main(['-vs'])
2.運(yùn)行單個(gè)測試模塊
以上案例是運(yùn)行所有測試模塊,如果想運(yùn)行單個(gè)測試模塊,寫法如下
import pytest if __name__ == '__main__': pytest.main(['-vs','test_case01.py'])
3.運(yùn)行指定測試用例
運(yùn)行test_case01.py測試模塊中test_02_demo()測試用例,這種運(yùn)行方式采用 nodeid 指定測試用例運(yùn)行(nodeid由模塊名、分隔符、類名、方法名、函數(shù)名組成)。
import pytest if __name__ == '__main__': pytest.main(['-vs','test_case01.py::TestDemo1::test_02_demo'])
2.2 命令行運(yùn)行
1.運(yùn)行所有測試模塊
# 在對應(yīng)目錄下,輸入`pytest -vs` 命令即可運(yùn)行 pytest -vs
2.運(yùn)行指定測試模塊
pytest -vs test_case01.py
3.運(yùn)行指定測試用例
pytest -vs test_case01.py::TestDemo1::test_02_demo
2.3 通過讀取pytest.ini 配置文件運(yùn)行
pytest.ini 文件介紹
pytest.ini 文件是 pytest 單元測試框架的核心配置文件。
位置:一般放在項(xiàng)目的根目錄下
編碼:必須是ANSI,可以使用noepad++修改編碼
作用:改變 pytest 默認(rèn)的行為(可以更改模塊名以test等等規(guī)定)
運(yùn)行的規(guī)則:不管是主函數(shù)的模式運(yùn)行,還是命令行模式運(yùn)行,都會(huì)去讀取這個(gè)配置文件。
在根目錄下創(chuàng)建 pytest.ini 文件,內(nèi)容如下所示
[pytest] addopts = -p no:warnings -vs testpaths = ./testcase python_files = test_*.py python_classes = Test* python_functions = test*
如果在命令行輸入 Pytest
,則會(huì)運(yùn)行 ./testcase
目錄下,以 test_*.py
文件開頭,類名以 Test*
開頭、函數(shù)以 test*
開頭的文件。
三、修改Pytest默認(rèn)規(guī)則
在【Pytest實(shí)戰(zhàn)】pytest 基本概念及使用大全文章中,給大家初步介紹了Pytest的默認(rèn)規(guī)則,然后通過 pytest.ini配置文件可以改變Pytest默認(rèn)規(guī)則。
假如運(yùn)行以aaa
開頭的測試文件,以AAA
開頭的類,以aatest
開頭的測試用例。
[pytest] addopts = -p no:warnings -vs testpaths = ./testcase python_files = aaa_*.py python_classes = AAA* python_functions = aatest*
- addopts 表示命令行參數(shù),當(dāng)多個(gè)參數(shù)時(shí),用空格分隔
- testpaths 表示測試用例文件夾,切記,一點(diǎn)要寫成testpaths,不要忘記s。
- python_files 表示要執(zhí)行的測試模塊規(guī)則,默認(rèn)是以test開頭,可以在此處自定義模塊名
- python_classes 表示配置測試搜索的測試類名
- python_functions 配置測試搜索的測試函數(shù)名
四、Pytest 參數(shù)使用
在上述案例中簡單用到了Pytest參數(shù)的使用,后續(xù)文章還會(huì)詳細(xì)講解,先熟悉下吧。
參數(shù) | 說明及使用 |
---|---|
-s | 表示輸出調(diào)試信息,包括print打印信息 |
-v | 表示更詳細(xì)的信息,通常-vs一起使用 |
-n | 支持多線程或者分布式運(yùn)行測試用例 pytest -vs ./testcase01 -n 2 |
-m | 分組執(zhí)行 |
到此這篇關(guān)于Pytest運(yùn)行方式及參數(shù)使用詳細(xì)教程的文章就介紹到這了,更多相關(guān)Pytest運(yùn)行方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)提取圖片中顏色并繪制成可視化圖表
今天小編來為大家分享一個(gè)有趣的可視化技巧,就是如何利用Python語言實(shí)現(xiàn)從圖片中提取顏色然后繪制成可視化圖表,感興趣的可以嘗試一下2022-07-07Python使用ftplib實(shí)現(xiàn)簡易FTP客戶端的方法
這篇文章主要介紹了Python使用ftplib實(shí)現(xiàn)簡易FTP客戶端的方法,實(shí)例分析了ftplib模塊相關(guān)設(shè)置與使用技巧,需要的朋友可以參考下2015-06-06Python垃圾回收機(jī)制三種實(shí)現(xiàn)方法
這篇文章主要介紹了Python垃圾回收機(jī)制三種實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Python結(jié)合PyWebView庫打造跨平臺(tái)桌面應(yīng)用
隨著Web技術(shù)的發(fā)展,將HTML/CSS/JavaScript與Python結(jié)合構(gòu)建桌面應(yīng)用成為可能,本文將系統(tǒng)講解如何使用PyWebView庫實(shí)現(xiàn)這一創(chuàng)新方案,希望對大家有一定的幫助2025-04-04Python處理時(shí)間戳和時(shí)間計(jì)算等的腳本分享
這篇文章主要為大家整理總結(jié)了5個(gè)實(shí)用的Python小,可以實(shí)現(xiàn)時(shí)間戳處理和時(shí)間計(jì)算。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下2022-07-07