目錄:
- 安裝及入門
- 使用和調(diào)用方法
- 原有TestSuite使用方法
- 斷言的編寫和報(bào)告
- Pytest fixtures:清晰 模塊化 易擴(kuò)展
- 使用Marks標(biāo)記測(cè)試用例
- Monkeypatching/對(duì)模塊和環(huán)境進(jìn)行Mock
- 使用tmp目錄和文件
- 捕獲stdout及stderr輸出
- 捕獲警告信息
- 模塊及測(cè)試文件中集成doctest測(cè)試
- skip及xfail: 處理不能成功的測(cè)試用例
- Fixture方法及測(cè)試用例的參數(shù)化
- 緩存: 使用跨執(zhí)行狀態(tài)
- unittest.TestCase支持
- 運(yùn)行Nose用例
- 經(jīng)典xUnit風(fēng)格的setup/teardown
- 安裝和使用插件
- 插件編寫
- 編寫鉤子(hook)方法
- 運(yùn)行日志
- API參考
- 優(yōu)質(zhì)集成實(shí)踐
- 片狀測(cè)試
- Pytest導(dǎo)入機(jī)制及sys.path/PYTHONPATH
- 配置選項(xiàng)
- 示例及自定義技巧
- Bash自動(dòng)補(bǔ)全設(shè)置
API參考-Marks
22-API參考-02-Marks
標(biāo)記(Marks)
可以使用標(biāo)記應(yīng)用元數(shù)據(jù)來(lái)測(cè)試功能(但不是固定裝置)纠屋,然后可以通過(guò)裝置或插件訪問(wèn)苏潜。
pytest.mark.filterwarnings
教程:@ pytest.mark.filterwarnings。
為標(biāo)記的測(cè)試項(xiàng)添加警告過(guò)濾器。
pytest.mark.``filterwarnings
(過(guò)濾器)
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): | 過(guò)濾器(str) -
一個(gè)警告規(guī)范字符串剖煌,由Python文檔的“警告過(guò)濾器”部分中 指定的元組內(nèi)容組成,由飞傀。分隔朴摊。可以省略可選字段千扔。傳遞用于過(guò)濾的模塊名稱不是正則表達(dá)式轉(zhuǎn)義憎妙。(action, message,category, module, lineno)
":"
例如:
@pytest.mark.warnings("ignore:.*usage will be deprecated.*:DeprecationWarning")
def test_foo():
...
|
pytest.mark.parametrize
Metafunc.``parametrize
(argnames曲楚,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。如果沒(méi)有提供id哩都,它們將自動(dòng)從argvalues生成魁兼。
-
范圍 - 如果指定,則表示參數(shù)的范圍漠嵌。范圍用于按參數(shù)實(shí)例對(duì)測(cè)試進(jìn)行分組咐汞。它還將覆蓋任何fixture函數(shù)定義的范圍,允許使用測(cè)試上下文或配置設(shè)置動(dòng)態(tài)范圍儒鹿。
|
pytest.mark.skip
教程:跳過(guò)測(cè)試功能化撕。
無(wú)條件地跳過(guò)測(cè)試功能。
pytest.mark.``skip
(**约炎,reason = None *)
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): | reason(str) - 跳過(guò)測(cè)試功能的原因植阴。 |
pytest.mark.skipif
教程:跳過(guò)測(cè)試功能。
如果條件是圾浅,則跳過(guò)測(cè)試功能True
掠手。
pytest.mark.``skipif
(條件,*狸捕,原因=無(wú))
<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)記無(wú)效混槐。
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.``xfail
(condition = None,炮姨,reason = None,raises = None碰煌,run = True舒岸,strict = False *)
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): |
-
condition(bool或str) - 將測(cè)試函數(shù)標(biāo)記為xfail(
True/False
或條件字符串)的 條件。 - reason(str) - 測(cè)試函數(shù)標(biāo)記為xfail的原因芦圾。
- 引發(fā)(異常) - 期望由測(cè)試函數(shù)引發(fā)的異常子類; 其他例外將無(wú)法通過(guò)測(cè)試蛾派。
-
run(bool) - 如果實(shí)際應(yīng)該執(zhí)行測(cè)試功能。如果
False
,該函數(shù)將始終為xfail并且不會(huì)被執(zhí)行(如果函數(shù)是segfaulting則很有用)洪乍。 -
嚴(yán)格(布爾) -
- 如果
False
(默認(rèn)值)眯杏,該功能將在終端輸出中顯示,就xfailed
好像它失敗一樣壳澳,就像xpass
它通過(guò)一樣岂贩。在這兩種情況下,這都不會(huì)導(dǎo)致測(cè)試套件整體失敗巷波。這對(duì)于標(biāo)記稍后要解決的片狀測(cè)試(隨機(jī)失敗的測(cè)試)特別有用萎津。 - 如果
True
,該函數(shù)將在終端輸出中顯示為xfailed
失敗抹镊,但如果它意外通過(guò)則將使測(cè)試套件失敗锉屈。這對(duì)于標(biāo)記始終失敗的函數(shù)特別有用,并且應(yīng)該有明確的指示它們是否意外地開(kāi)始通過(guò)(例如垮耳,庫(kù)的新版本修復(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
俊嗽,然后可以通過(guò)固定裝置或鉤子訪問(wèn)Node.iter_markers
。該mark
對(duì)象將具有以下屬性:
mark.args == (10, "slow")
mark.kwargs == {"method": "thread"}