pytest配置文件pytest.ini的具體使用
前言
說到配置,大家可能想到的是不經(jīng)常更改的內(nèi)容,比如Django里的settings.py文件,或者我們做自動(dòng)化的時(shí)候,把測試環(huán)境的域名和正式環(huán)境的域名放到一個(gè)配置文件里,所有的接口都從這個(gè)文件里讀取。這樣,如果有一天,我們的域名變了,我們只需要更改配置里的域名就可以了。pytest里也有幾個(gè)配置文件。
pytest.ini:pytest的主配置文件,可以改變pytest的默認(rèn)行為,有很多可配置的選項(xiàng)。
conftest.py:是本地的插件庫,其中的hook函數(shù)和fixture將作用于該文件所在的目錄以及所有子目錄。
init.py:每個(gè)測試子目錄都包含該文件時(shí),那么在多個(gè)測試目錄中可以出現(xiàn)同名測試文件。
tox.ini:它與pytest.ini類似,只不過是tox的配置文件,你可以把pytest的配置都寫在tox.ini里,這樣就不用同時(shí)使用tox.ini和pytest.ini兩個(gè)文件
本文只談pytest.ini的使用
pytest.ini的內(nèi)容構(gòu)成
先看一個(gè)簡單的示例,這個(gè)只展示了配置文件中的三個(gè)配置項(xiàng),更多配置項(xiàng)可以查看http://www.dbjr.com.cn/article/255567.htm
配置項(xiàng)markers
先談markers,它的作用是做注冊(cè)標(biāo)記,防止拼寫錯(cuò)誤。比如把@pytest.mark.smoke拼成@pytest.mark.somke,默認(rèn)情況下。這不會(huì)引起程序錯(cuò)誤。pytest會(huì)以為這是你創(chuàng)建的另一個(gè)標(biāo)記。為了避免拼寫錯(cuò)誤??梢栽趐ytest.ini文件里注冊(cè)標(biāo)記
[pytest] markers = smoke: Run the smoke test functions for tasks project get: Run the test functions that test tasks.get()
import pytest def inc(x): return x + 1 @pytest.mark.smoke def test_answer(): assert inc(3) == 55 @pytest.mark.post def test_answer1(): assert inc(4) == 5
標(biāo)記注冊(cè)好后,可以通過pytest --markers來查看
如果我們?cè)趫?zhí)行時(shí),故意寫錯(cuò)mark標(biāo)簽,如把smoke故意寫錯(cuò)了,也沒有報(bào)錯(cuò),只是給我們一個(gè)警告,只需要我們?cè)趇ni里注冊(cè)下就不會(huì)有警告了
如果使用了–strict選項(xiàng),遇到拼寫錯(cuò)誤的標(biāo)記或未注冊(cè)的標(biāo)記就會(huì)報(bào)錯(cuò)。并且在pytest.ini里注冊(cè)了標(biāo)記,但是沒有函數(shù)使用該標(biāo)記,也會(huì)報(bào)錯(cuò)。
配置項(xiàng)testpaths
testpaths指示pytest去哪里訪問。testpaths是一系列相對(duì)于根目錄的路徑,用于限定測試用例的搜索范圍。只有在pytest未指定文件目錄參數(shù)或測試用例標(biāo)識(shí)符時(shí),該選項(xiàng)才有作用
[pytest] testpaths = test_001
配置項(xiàng)addopts
更改默認(rèn)命令行選項(xiàng)
pytest用命令行運(yùn)行時(shí),有時(shí)候需要經(jīng)常要用到某些參數(shù),又不想重復(fù)輸入,這時(shí)可以使用pytest.ini文件里的addopts設(shè)置
[pytest] addopts=-vqs
編寫的用例
from selenium import webdriver def testOpenUrl(): try: driver = webdriver.Firefox() # 打開瀏覽器 driver.get('http://www.baidu.com') # 訪問百度 title = driver.title # 獲取百度首頁的title assert title == '百度一下,你就知道' # 斷言 except AssertionError: raise AssertionError('斷言失敗!') driver.quit()
-v:pytest -v 說明:可以輸出用例更加詳細(xì)的執(zhí)行信息,比如用例所在的文件及用例名稱等
-s:pytest -s 說明:輸入我們用例中的調(diào)式信息,比如print的打印信息等,我們?cè)谏厦嬗美?行加上一句 print(driver.title),我們?cè)龠\(yùn)行一下我們的用例看看
-m:pytest -m ”標(biāo)記“ 說明:執(zhí)行特定的測試用例。修改下上面的用例代碼
from selenium import webdriver import pytest @pytest.mark.run_this_testcase #添加mark的標(biāo)簽 def testOpenUrl(): try: driver = webdriver.Firefox() # 打開瀏覽器 driver.get('http://www.baidu.com') # 訪問百度 title = driver.title # 獲取百度首頁的title print(driver.title) assert title == '百度一下,你就知道' # 斷言 except AssertionError: raise AssertionError('斷言失敗!') driver.quit() def testBaidu(): driver = webdriver.Firefox() # 打開瀏覽器 driver.get('http://www.baidu.com') # 訪問百度 title = driver.title # 獲取百度首頁的title assert title == '百度一下,你就知道' # 斷言
-q:pytest -q 說明:簡化控制臺(tái)的輸出,可以看出輸出信息和上面的結(jié)果都不一樣, 下圖中有兩個(gè)…點(diǎn)代替了pass結(jié)果
-k:pytest -k “關(guān)鍵字” 說明:執(zhí)行用例包含“關(guān)鍵字”的用例
–tb=style:屏蔽測試用例執(zhí)行輸出的回溯信息,可以簡化用例失敗時(shí)的輸出信息。style可以是 on,line,short,具體區(qū)別請(qǐng)自行體驗(yàn)。如使用pytest --tb=no
更多pytest參數(shù)可以參考文章
http://www.dbjr.com.cn/article/164071.htm
http://www.dbjr.com.cn/article/164074.htm
參考鏈接:
http://www.dbjr.com.cn/article/255567.htm
到此這篇關(guān)于pytest配置文件pytest.ini的具體使用的文章就介紹到這了,更多相關(guān)pytest配置文件pytest.ini內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Yolov5多邊形標(biāo)簽和JSON數(shù)據(jù)格式轉(zhuǎn)換
通過labelme對(duì)圖進(jìn)行標(biāo)注后,得到的是json文件,而Yolov5對(duì)數(shù)據(jù)進(jìn)行模型構(gòu)建的時(shí)候,讀取需要的是txt格式的文件。所以需要先通過Python進(jìn)行文件格式的轉(zhuǎn)換,需要的朋友可以參考下2023-05-05Window 64位下python3.6.2環(huán)境搭建圖文教程
這篇文章主要為大家詳細(xì)介紹了Window 64位下python3.6.2環(huán)境搭建圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09基于注解實(shí)現(xiàn) SpringBoot 接口防刷的方法
這篇文章主要介紹了基于注解實(shí)現(xiàn) SpringBoot 接口防刷的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03python argparse傳入布爾參數(shù)false不生效的解決
這篇文章主要介紹了python argparse傳入布爾參數(shù)false不生效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python 通過爬蟲實(shí)現(xiàn)GitHub網(wǎng)頁的模擬登錄的示例代碼
這篇文章主要介紹了Python 通過爬蟲實(shí)現(xiàn)GitHub網(wǎng)頁的模擬登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08