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ù)來(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

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

Metafunc.``parametrizeargnames曲楚,argvalues厘唾,indirect = Falseids = 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ù): | reasonstr) - 跳過(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ù): |

  • conditionboolstr) - True/False如果應(yīng)該跳過(guò)條件條件字符串喷鸽。
  • reasonstr) - 跳過(guò)測(cè)試功能的原因。
    |

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.``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ā)的異常子類; 其他例外將無(wú)法通過(guò)測(cè)試蛾派。
  • runbool) - 如果實(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"}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末查蓉,一起剝皮案震驚了整個(gè)濱河市乌询,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌豌研,老刑警劉巖妹田,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異鹃共,居然都是意外死亡鬼佣,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門霜浴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)晶衷,“玉大人,你說(shuō)我怎么就攤上這事阴孟∩稳遥” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵永丝,是天一觀的道長(zhǎng)锹漱。 經(jīng)常有香客問(wèn)我,道長(zhǎng)慕嚷,這世上最難降的妖魔是什么哥牍? 我笑而不...
    開(kāi)封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任毕泌,我火速辦了婚禮,結(jié)果婚禮上嗅辣,老公的妹妹穿的比我還像新娘撼泛。我一直安慰自己,他們只是感情好澡谭,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布愿题。 她就那樣靜靜地躺著,像睡著了一般译暂。 火紅的嫁衣襯著肌膚如雪抠忘。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天外永,我揣著相機(jī)與錄音崎脉,去河邊找鬼。 笑死伯顶,一個(gè)胖子當(dāng)著我的面吹牛囚灼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播祭衩,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼灶体,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了掐暮?” 一聲冷哼從身側(cè)響起蝎抽,我...
    開(kāi)封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎路克,沒(méi)想到半個(gè)月后樟结,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡精算,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年瓢宦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灰羽。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡驮履,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出廉嚼,到底是詐尸還是另有隱情玫镐,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布怠噪,位于F島的核電站摘悴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏舰绘。R本人自食惡果不足惜蹂喻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捂寿。 院中可真熱鬧口四,春花似錦、人聲如沸秦陋。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)驳概。三九已至赤嚼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間顺又,已是汗流浹背更卒。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留稚照,地道東北人蹂空。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像果录,于是被迫代替她去往敵國(guó)和親上枕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容