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