Pytest官方教程-22-API參考-Marks

目錄:

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

API參考-Marks

22-API參考-02-Marks

標(biāo)記(Marks)

可以使用標(biāo)記應(yīng)用元數(shù)據(jù)來測(cè)試功能(但不是固定裝置),然后可以通過裝置或插件訪問。

pytest.mark.filterwarnings

教程@ pytest.mark.filterwarnings。
為標(biāo)記的測(cè)試項(xiàng)添加警告過濾器。

pytest.mark.``filterwarnings過濾器

<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): | 過濾器str) -
一個(gè)警告規(guī)范字符串,由Python文檔的“警告過濾器”部分中 指定的元組內(nèi)容組成,由。分隔??梢允÷钥蛇x字段。傳遞用于過濾的模塊名稱不是正則表達(dá)式轉(zhuǎn)義。(action, message,category, module, lineno)":"
例如:

@pytest.mark.warnings("ignore:.*usage will be deprecated.*:DeprecationWarning")
def test_foo():
    ...

|

pytest.mark.parametrize

教程參數(shù)化夾具和測(cè)試功能。

Metafunc.``parametrizeargnames,argvalues,indirect = False,ids = None,*scope = None *)[source]

使用給定argnames的argvalues列表向基礎(chǔ)測(cè)試函數(shù)添加新調(diào)用。在收集階段執(zhí)行參數(shù)化。如果你需要設(shè)置昂貴的資源,請(qǐng)參閱設(shè)置間接,以便在測(cè)試設(shè)置時(shí)進(jìn)行。
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): |

  • argnames - 以逗號(hào)分隔的字符串,表示一個(gè)或多個(gè)參數(shù)名稱,或參數(shù)字符串的列表/元組。
  • argvalues - argvalues列表確定使用不同參數(shù)值調(diào)用測(cè)試的頻率。如果只指定了一個(gè)argname,則argvalues是值列表。如果指定了N個(gè)argnames,則argvalues必須是N元組的列表,其中每個(gè)tuple-element為其各自的argname指定一個(gè)值。
  • indirect - argnames或boolean的列表。參數(shù)列表名稱(argnames的子集)。如果為True,則列表包含argnames中的所有名稱。對(duì)應(yīng)于此列表中的argname的每個(gè)argvalue將作為request.param傳遞到其各自的argname fixture函數(shù),以便它可以在測(cè)試的設(shè)置階段而不是在收集時(shí)執(zhí)行更昂貴的設(shè)置。
  • ids - 字符串ID列表或可調(diào)用的列表。如果字符串,則每個(gè)字符串對(duì)應(yīng)于argvalues,以便它們是測(cè)試ID的一部分。如果將None作為特定測(cè)試的id給出,則將使用該參數(shù)的自動(dòng)生成的id。如果是可調(diào)用的,它應(yīng)該采用一個(gè)參數(shù)(單個(gè)argvalue)并返回一個(gè)字符串或返回None。如果為None,將使用該參數(shù)的自動(dòng)生成的id。如果沒有提供id,它們將自動(dòng)從argvalues生成。
  • 范圍 - 如果指定,則表示參數(shù)的范圍。范圍用于按參數(shù)實(shí)例對(duì)測(cè)試進(jìn)行分組。它還將覆蓋任何fixture函數(shù)定義的范圍,允許使用測(cè)試上下文或配置設(shè)置動(dòng)態(tài)范圍。
    |

pytest.mark.skip

教程跳過測(cè)試功能。
無條件地跳過測(cè)試功能。

pytest.mark.``skip(**,reason = None *)

<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): | reasonstr) - 跳過測(cè)試功能的原因。 |

pytest.mark.skipif

教程跳過測(cè)試功能。
如果條件是,則跳過測(cè)試功能True。

pytest.mark.``skipif條件,*,原因=無

<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): |

pytest.mark.usefixtures

教程使用類,模塊或項(xiàng)目中的夾具。
將測(cè)試功能標(biāo)記為使用給定的夾具名稱。
警告
應(yīng)用于夾具功能時(shí),該標(biāo)記無效。

pytest.mark.``usefixtures(*名稱

<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): | args - 要使用的fixture的名稱,作為字符串 |

pytest.mark.xfail

教程XFail:將測(cè)試功能標(biāo)記為預(yù)期失敗
標(biāo)記測(cè)試功能按預(yù)期失敗。

pytest.mark.``xfailcondition = None,,reason = Noneraises = None,run = True,strict = False *)

<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): |

  • conditionboolstr) - 將測(cè)試函數(shù)標(biāo)記為xfail(True/False條件字符串)的 條件。
  • reasonstr) - 測(cè)試函數(shù)標(biāo)記為xfail的原因。
  • 引發(fā)異常) - 期望由測(cè)試函數(shù)引發(fā)的異常子類; 其他例外將無法通過測(cè)試。
  • runbool) - 如果實(shí)際應(yīng)該執(zhí)行測(cè)試功能。如果False,該函數(shù)將始終為xfail并且不會(huì)被執(zhí)行(如果函數(shù)是segfaulting則很有用)。
  • 嚴(yán)格布爾) -
    • 如果False(默認(rèn)值),該功能將在終端輸出中顯示,就xfailed好像它失敗一樣,就像xpass它通過一樣。在這兩種情況下,這都不會(huì)導(dǎo)致測(cè)試套件整體失敗。這對(duì)于標(biāo)記稍后要解決的片狀測(cè)試(隨機(jī)失敗的測(cè)試)特別有用。
    • 如果True,該函數(shù)將在終端輸出中顯示為xfailed失敗,但如果它意外通過則將使測(cè)試套件失敗。這對(duì)于標(biāo)記始終失敗的函數(shù)特別有用,并且應(yīng)該有明確的指示它們是否意外地開始通過(例如,庫的新版本修復(fù)了已知錯(cuò)誤)。
      |

自定義標(biāo)記

標(biāo)記是使用工廠對(duì)象動(dòng)態(tài)創(chuàng)建的,pytest.mark并作為裝飾器應(yīng)用。
例如:

@pytest.mark.timeout(10, "slow", method="thread")
def test_function():
    ...

將創(chuàng)建并附加一個(gè)Mark對(duì)象到收集 Item,然后可以通過固定裝置或鉤子訪問Node.iter_markers。該mark對(duì)象將具有以下屬性:

mark.args == (10, "slow")
mark.kwargs == {"method": "thread"}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容