
都有哪些種類的組態檔
pytest.ini:pytest的主組態檔,可以改變pytest的默認行為
conftest.py:是本地插件庫,其中的hook函式和fixture將作用于該檔案所在的目錄以及所有子目錄
tox.ini:如果使用到tox工具,也會有這個組態檔,可以把pytest的配置都寫在tox.ini檔案里,這樣就不用同時寫兩個組態檔了
setup.cfg: 也采用的是ini檔案的格式,而且可以影響setup.py的行為,使用python setup.py test運行所有測驗用例
pytest 的配置選項
使用pytest --help可以查看pytest支持的所有配置的選項,以下只截取部分
markers (linelist): markers for test functions
empty_parameter_set_mark (string):
default marker for empty parametersets
norecursedirs (args): directory patterns to avoid for recursion
testpaths (args): directories to search for tests when no files or directories are given in the
command line.
usefixtures (args): list of default fixtures to be used with this project
python_files (args): glob-style file patterns for Python test module discovery
python_classes (args):
prefixes or glob names for Python test class discovery
python_functions (args):
prefixes or glob names for Python test function and method discovery
disable_test_id_escaping_and_forfeit_all_rights_to_community_support (bool):
disable string escape non-ascii characters, might cause unwanted side effects(use
at your own risk)
console_output_style (string):
console output: "classic", or with additional progress information ("progress"
(percentage) | "count").
xfail_strict (bool): default for the strict parameter of xfail markers when not given explicitly
(default: False)
addopts (args): extra command line options
minversion (string): minimally required pytest version
- addopts
當在命令列運行測驗用例的時候,通常會指定多個命令列引數,但是總不能每次運行的時候都要輸入一遍,這個時候我們就可以利用addopts這個選項,將一寫常用的引數聚合到一起,執行的時候不用顯示指定,只需要pytest即可,
[pytest]addopts = - -l --tb=short --strict
rsxX表示pytest會顯示所有測驗用例被跳過-s、預計失敗-x、預計失敗單通過-X的原因-s,-l表示pytest顯示失敗用例堆疊中的區域變數的資訊,–tb=short 表示簡化堆疊資訊,只保留檔案和行數,
–strict 選項表示禁止使用未在組態檔注冊過的標記
- markers
將自定義的標記注冊進pytest中,如果使用里–strict選項,在遇到拼寫錯誤或者未注冊的標記的時候就會報錯,如果不注冊不使用–strict也能用,但是當在自定義的標記出現拼寫錯誤的時候,在默認情況下不會引起程式錯誤,通過注冊標記的方式,將錯誤提前拋出,方便問題處理,
[pytest]
markers = smoke: 用于冒煙測驗 get
- minversion
指定pytest最小版本號
- norecursedirs
pytest搜索測驗用例的時候,會遞回遍歷所有子目錄,但是隨著產品的迭代有些用例已經不適合或者不必要在運行了,這時我們想告訴pytest,這些用例就不要執行了,
通過指定norecursedirs可以實作
[pytest]
norecursedirs = .* venv src *.egg dist build
其實類似.gitignore檔案的功能,忽略調某些檔案不進行版本控制
- testpaths
norecursedirs告訴pytest那些路徑不用訪問,testpaths告訴pytest去哪里訪問,testpaths是一系列相對于根目錄的路徑,用于限定測驗用例的搜索范圍,當使用tox來管理測驗用專案時,這時的專案目錄是自定義的,此時一般tox.ini和tests用例檔案夾處于同級目錄,就需要在tox.ini里指定測驗目錄

[pytest]
testpaths = tests
- 更改測驗搜索的規則
pytest根據一定的規則搜索并運行測驗,標準的搜索規則如下:
1.從一個多個目錄開始查找,可以在命令列指定目錄,如果未指定則以當前目錄為根目錄
2.在該目錄或者所有子目錄下遞回查找測驗模塊
3.測驗模塊指的是檔案名以test_.py或._test.py的檔案
4.在測驗模塊中查找以test_開頭的函式名
5.查找以Test開頭的類,會篩選調有__ini__函式的類,在查找以test開頭的方法
python_classes
一般情況下,pytest的測驗搜索規則尋找以Test開頭的測驗類,而且這個類不能包含__ini__()函式,但是有時候會把測驗類命名以Test結尾的類,比如*Test,這個時候就可以指定python_classes的值來解決**
[pytest]python_classes = *Test Test* *Suit
python_files
和python_classes類似,可以更改測驗模塊的搜索規則
[pytest]
python_files = *_test.py test_*.py
python_fuctions
修改測驗方法的搜索規則
[pytest]
python_fuctions = *_test test_*
- 禁用xpass
設定xfail_strict = true將會使得那些被標記為@pytest.mark.xfail但實際通過黨的測驗用例也會顯示為失敗,
pytest的配置選項還有配置是否輸出到Junit xml報告檔案中,控制臺日志輸出,log檔案輸出配置等,大家可查閱官方檔案繼續學習!
以上筆者的經歷更像一張橫向的知識網,創建了一個交流平臺 914172719 ,群內有各種技術同行交流、學習資料、面試經驗等,其中用到jenkins、docker、moutebank、python編程等,還需要花更多的精力去深入學習,當每項技能都能掌握到一定深度,才能稱為一個完整的知識體系,
最后: 可以關注公眾號:傷心的辣條 ! 進去有許多資料共享!資料都是面試時面試官必問的知識點,也包括了很多測驗行業常見知識,其中包括了有基礎知識、Linux必備、Shell、互聯網程式原理、Mysql資料庫、抓包工具專題、介面測驗工具、測驗進階-Python編程、Web自動化測驗、APP自動化測驗、介面自動化測驗、測驗高級持續集成、測驗架構開發測驗框架、性能測驗、安全測驗等,
如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!
好文推薦
轉行面試,跳槽面試,軟體測驗人員都必須知道的這幾種面試技巧!
面試經:一線城市搬磚!又面軟體測驗崗,5000就知足了…
面試官:作業三年,還來面初級測驗?恐怕你的軟體測驗工程師的頭銜要加雙引號…
什么樣的人適合從事軟體測驗作業?
那個準點下班的人,比我先升職了…
測驗崗反復跳槽,跳著跳著就跳沒了…
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297427.html
標籤:其他
