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

