Pytest官方教程-22-API參考-Configuration Options

目錄:

  1. 安裝及入門
  2. 使用和調用方法
  3. 原有TestSuite使用方法
  4. 斷言的編寫和報告
  5. Pytest fixtures:清晰 模塊化 易擴展
  6. 使用Marks標記測試用例
  7. Monkeypatching/對模塊和環境進行Mock
  8. 使用tmp目錄和文件
  9. 捕獲stdout及stderr輸出
  10. 捕獲警告信息
  11. 模塊及測試文件中集成doctest測試
  12. skip及xfail: 處理不能成功的測試用例
  13. Fixture方法及測試用例的參數化
  14. 緩存: 使用跨執行狀態
  15. unittest.TestCase支持
  16. 運行Nose用例
  17. 經典xUnit風格的setup/teardown
  18. 安裝和使用插件
  19. 插件編寫
  20. 編寫鉤子(hook)方法
  21. 運行日志
  22. API參考
    1. 方法(Functions)
    2. 標記(Marks)
    3. 鉤子(Hooks)
    4. 裝置(Fixtures)
    5. 對象(Objects)
    6. 特殊變量(Special Variables)
    7. 環境變量(Environment Variables)
    8. 配置選項(Configuration Options)
  23. 優質集成實踐
  24. 片狀測試
  25. Pytest導入機制及sys.path/PYTHONPATH
  26. 配置選項
  27. 示例及自定義技巧
  28. Bash自動補全設置

API參考-Configuration Options

配置選項

這里是一個可以在被寫入內置的配置選項的列表pytest.initox.inisetup.cfg 通常位于版本庫的根文件。所有選項必須在一個[pytest]部分下([tool:pytest]對于setup.cfg文件)。
警告
的使用setup.cfg是不推薦,除非非常簡單的用例。.cfg 文件使用不同的解析器pytest.initox.ini這可能導致難以追蹤問題。如果可能,建議使用后面的文件來保存pytest配置。
配置文件選項可以通過使用在命令行中覆蓋,-o/--override也可以多次傳遞。預期的格式是name=value。例如:

pytest -o console_output_style=classic -o cache_dir=/tmp/mycache

addopts
將指定OPTS的命令行參數添加到命令行參數集中,就像它們已由用戶指定一樣。示例:如果你有此ini文件內容:

# content of pytest.ini
[pytest]
addopts = --maxfail=2 -rf  # exit after 2 failures, report fail info

發行實際意味著:pytest test_hello.py

pytest --maxfail=2 -rf test_hello.py

默認是不添加選項。

cache_dir
設置存儲緩存插件內容的目錄。默認目錄是 .pytest_cacherootdir中創建的。目錄可以是相對路徑或絕對路徑。如果設置相對路徑,則相對于rootdir創建目錄。另外,path可能包含將被擴展的環境變量。有關緩存插件的更多信息,請參閱緩存:使用跨testrun狀態

confcutdir
設置向上搜索conftest.py文件的目錄。默認情況下,pytest將停止conftest.py從項目的pytest.ini/ tox.ini/ 向上搜索文件(setup.cfg如果有),或者直到文件系統根目錄。

console_output_style
運行測試時設置控制臺輸出樣式:

  • classic:經典的pytest輸出。
  • progress:喜歡經典的pytest輸出,但帶有進度指示器。
  • count:像進度一樣,但隨著測試完成次數而不是百分比顯示進度。
    默認值為progress,但classic如果你愿意,或者新模式導致意外問題,你可以回退到:
# content of pytest.ini
[pytest]
console_output_style = classic

doctest_encoding
用于解碼帶有文檔字符串的文本文件的默認編碼。 看看pytest如何處理doctests

doctest_optionflags
標準doctest模塊中的一個或多個doctest標志名稱。 看看pytest如何處理doctests

empty_parameter_set_mark
允許在參數化中為空參數選擇操作

  • skip 使用空參數跳過測試(默認)
  • xfail 使用空參數標記測試為xfail(run = False)
  • fail_at_collect 如果parametrize收集空參數集,則引發異常
# content of pytest.ini
[pytest]
empty_parameter_set_mark = xfail

注意
計劃xfail在將來的版本中更改此選項的默認值,因為這被認為不易出錯, 有關詳細信息,請參閱#3155

filterwarnings
設置應為匹配的警告采取的過濾器和操作的列表。默認情況下,測試會話期間發出的所有警告都將在測試會話結束時顯示在摘要中。

# content of pytest.ini
[pytest]
filterwarnings =
 error
 ignore::DeprecationWarning

這告訴pytest忽略棄用警告并將所有其他警告變為錯誤。有關更多信息,請參閱警告捕獲

junit_family
版本4.2中的新功能。
配置生成的JUnit XML文件的格式。可能的選擇是:

  • xunit1(或legacy):生成舊樣式輸出,與xunit 1.0格式兼容。這是默認值
  • xunit2:生成xunit 2.0樣式輸出
    哪個應該與最新的Jenkins版本更兼容。
[pytest]
junit_family = xunit2

junit_suite_name
要設置根測試套件xml項的名稱,可以junit_suite_name在配置文件中配置該選項:

[pytest]
junit_suite_name = my_suite

log_cli_date_format
設置一個time.strftime()兼容的字符串,該字符串將在格式化實時日志記錄的日期時使用。

[pytest]
log_cli_date_format = %Y-%m-%d %H:%M:%S

有關更多信息,請參閱實時日志

log_cli_format
設置logging用于格式化實時日志記錄消息的兼容字符串。

[pytest]
log_cli_format = %(asctime)s %(levelname)s %(message)s

有關更多信息,請參閱實時日志

log_cli_level
設置應為實時日志記錄捕獲的最小日志消息級別。可以使用整數值或級別的名稱。

[pytest]
log_cli_level = INFO

有關更多信息,請參閱實時日志

log_date_format
設置time.strftime()與日志記錄捕獲格式化日期時將使用的兼容字符串。

[pytest]
log_date_format = %Y-%m-%d %H:%M:%S

有關更多信息,請參閱日志記錄

log_file
pytest.ini除了活動的其他日志記錄工具之外,還應設置相對于應寫入日志消息的文件的文件名。

[pytest]
log_file = logs/pytest-logs.txt

有關更多信息,請參閱日志記錄

log_file_date_format
設置time.strftime()在格式化日志文件的日期時將使用的兼容字符串。

[pytest]
log_file_date_format = %Y-%m-%d %H:%M:%S

有關更多信息,請參閱日志記錄

log_file_format
設置一個logging兼容的字符串,用于格式化重定向到日志文件的日志消息。

[pytest]
log_file_format = %(asctime)s %(levelname)s %(message)s

有關更多信息,請參閱日志記錄

log_file_level
設置應為日志記錄文件捕獲的最小日志消息級別。可以使用整數值或級別的名稱。

[pytest]
log_file_level = INFO

有關更多信息,請參閱日志記錄

log_format
設置logging用于格式化捕獲的日志消息的兼容字符串。

[pytest]
log_format = %(asctime)s %(levelname)s %(message)s

有關更多信息,請參閱日志記錄

log_level
設置應記錄捕獲的最小日志消息級別。可以使用整數值或級別的名稱。

[pytest]
log_level = INFO

有關更多信息,請參閱日志記錄

log_print
如果設置為False,將禁用顯示失敗測試的捕獲日志消息。

[pytest]
log_print = False

有關更多信息,請參閱日志記錄

markers
使用--strict命令行參數時,只允許使用已知的標記(由代碼核心pytest或某些插件定義)。你可以在此設置中列出其他標記,以將其添加到白名單。
你可以列出每行一個標記名稱,從選項名稱縮進。

[pytest]
markers =
 slow
 serial

minversion
指定運行測試所需的最小pytest版本。

# content of pytest.ini
[pytest]
minversion = 3.0  # will fail if we run with pytest-2.8

norecursedirs
設置目錄basename模式以避免在遞歸測試發現時使用。各個(fnmatch樣式)模式應用于目錄的基本名稱,以決定是否遞歸到目錄。模式匹配字符:

*       matches everything
?       matches any single character
[seq]   matches any character in seq
[!seq]  matches any char not in seq

默認模式是。設置替換默認值。以下是如何避免某些目錄的示例:'.*', 'build', 'dist','CVS', '_darcs', '{arch}', '*.egg', 'venv'``norecursedirs

[pytest]
norecursedirs = .svn _build tmp*

這將告訴pytest我們不要查看典型的subversion或sphinx-build目錄或任何tmp前綴目錄。
此外,pytest將嘗試通過激活腳本的存在智能地識別和忽略virtualenv。除非??collect?in?virtualenv給出,否則在測試收集期間不會考慮任何被視為虛擬環境根目錄的目錄。另請注意, norecursedirs優先于??collect?in?virtualenv; 例如,如果你打算在virtualenv中使用匹配的基本目錄運行測試 ,則除了使用該標志外, '.*'必須覆蓋。norecursedirs``??collect?in?virtualenv

python_classes
一個或多個名稱前綴或glob樣式模式,用于確定考慮用于測試集合的類。通過在模式之間添加空格來搜索多個glob模式。默認情況下,pytest會將任何以前綴Test為前綴的類視為測試集合。以下是如何從以下結尾的類中收集測試的示例Suite

[pytest]
python_classes = *Suite

請注意,unittest.TestCase無論此選項如何,始終都會收集派生類,因為unittest自己的集合框架用于收集這些測試。

python_files
一個或多個Glob樣式的文件模式,用于確定哪些python文件被視為測試模塊。通過在模式之間添加空格來搜索多個glob模式:

[pytest]
python_files = test_*.py check_*.py example_*.py

或者每行一個:

[pytest]
python_files =
 test_*.py
 check_*.py
 example_*.py

默認情況下,匹配的文件test_*.py*_test.py將被視為測試模塊。

python_functions
一個或多個名稱前綴或glob-patterns,用于確定哪些測試函數和方法被視為測試。通過在模式之間添加空格來搜索多個glob模式。默認情況下,pytest會將任何前綴test為函數的函數視為測試。以下是如何收集以下結尾的測試函數和方法的示例_test

[pytest]
python_functions = *_test

請注意,這對生成在派生類上的方法沒有影響,因為自己的集合框架用于收集這些測試。unittest .TestCase``unittest
有關更多詳細示例,請參閱更改命名約定

testpaths
當從rootdir目錄執行pytest時,如果在命令行中沒有給出特定的目錄,文件或測試ID,則設置應搜索測試的目錄列表。當所有項目測試都在一個已知位置以加速測試收集并避免意外接收不需要的測試時非常有用。

[pytest]
testpaths = testing doc

這告訴pytest只在 從根目錄執行時查找testingdoc目錄中的測試。

usefixtures
將應用于所有測試功能的燈具列表; 這在語義上與將@pytest.mark.usefixtures標記應用于所有測試函數相同。

[pytest]
usefixtures =
 clean_db

xfail_strict
如果設置為True,則標記為@pytest.mark.xfail實際成功的測試將默認為測試套件失敗。有關更多信息,請參閱strict參數

[pytest]
xfail_strict = True```

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,923評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,740評論 3 420
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,856評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,175評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,931評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,321評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,383評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,533評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,082評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,891評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,618評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,319評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,732評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,987評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,794評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,076評論 2 375

推薦閱讀更多精彩內容