Python測試框架pytest

Python 有多個(gè)測試框架如unittest doctest pytest nose
選擇pytest是因?yàn)樗菀咨鲜职蠢澹夷軌蛑С趾唵蔚膯卧獪y試和復(fù)雜的功能測試,有很多的第三方插件可以自定義擴(kuò)展,支持allure

安裝pytest

進(jìn)入命令行pip install pytest
或者通過pycharm的插件安裝

Pytest測試樣例的命名規(guī)則

  1. 測試文件以test_開頭或結(jié)尾(否則用py.test命令行不能自動(dòng)識(shí)別)
  2. 測試類以Test開頭春感,且不能帶有init方法
  3. 測試函數(shù)以test_開頭
  4. 斷言使用assert
  5. fixture的文件名必須是conftest.py

舉例說明上述規(guī)則

新建一個(gè)pytest-sample項(xiàng)目
項(xiàng)目結(jié)構(gòu)如下圖所示




打開gitbash到該項(xiàng)目目錄下
運(yùn)行 py.test

可以看到只有test_sample.py 的文件兩個(gè)測試用例運(yùn)行了严望,sample.py卻沒有運(yùn)行
如果我們指定運(yùn)行的是sample.py村象,才會(huì)執(zhí)行此測試用例

Fixture是pytest特有的功能,用pytest.fixture標(biāo)識(shí)鹅很,定義在函數(shù)前面嘶居,在編寫測試函數(shù)的時(shí)候,可以將此函數(shù)名稱作為傳入?yún)?shù)促煮,pytest將會(huì)以依賴注入的方式邮屁,將函數(shù)的返回值當(dāng)作參數(shù)傳遞給測試函數(shù)

這個(gè)函數(shù)指定了fixture的初始化規(guī)則

@pytest.fixture(scope=”session”)

表示全局初始化一次,用于全局系統(tǒng)的初始化

@pytest.fixture(scope=”module”)

表示一個(gè)模塊只初始化一次菠齿,如果一個(gè)模塊使用多次該fixture佑吝,將會(huì)使用同個(gè)對(duì)象

@pytest.fixture(scope=”function”)

表示每個(gè)function都初始化一次

上面的截圖表示只全局化初始一次count,則在test_sample.py中兩個(gè)測試用例中的兩個(gè)count 只會(huì)被初始一次
可以使用py.test –fixture test_module.py 查看綁定的fixture

Fixture的自動(dòng)執(zhí)行autouse
需要某些fixture在全局自動(dòng)執(zhí)行绳匀,如某些全局變量的初始化操作芋忿,或者全局化的清理或者初始化函數(shù)
@pytest.fixture(session=”session”,autouse=true)

Pytest 的 fixture的存在使得我們?cè)诰帉憸y試函數(shù)的準(zhǔn)備函數(shù)、銷毀函數(shù)或者多個(gè)條件的測試提供了更加靈活的選擇疾棵。

參考鏈接https://docs.pytest.org/en/latest/contents.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末戈钢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子是尔,更是在濱河造成了極大的恐慌殉了,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拟枚,死亡現(xiàn)場離奇詭異薪铜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)恩溅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門隔箍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人脚乡,你說我怎么就攤上這事鞍恢。” “怎么了每窖?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長弦悉。 經(jīng)常有香客問我窒典,道長,這世上最難降的妖魔是什么稽莉? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任瀑志,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘劈猪。我一直安慰自己昧甘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布战得。 她就那樣靜靜地躺著充边,像睡著了一般。 火紅的嫁衣襯著肌膚如雪常侦。 梳的紋絲不亂的頭發(fā)上浇冰,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音聋亡,去河邊找鬼肘习。 笑死,一個(gè)胖子當(dāng)著我的面吹牛坡倔,可吹牛的內(nèi)容都是我干的漂佩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼罪塔,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼投蝉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起垢袱,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤墓拜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后请契,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咳榜,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年爽锥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涌韩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡氯夷,死狀恐怖臣樱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腮考,我是刑警寧澤雇毫,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站踩蔚,受9級(jí)特大地震影響棚放,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜馅闽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一飘蚯、第九天 我趴在偏房一處隱蔽的房頂上張望馍迄。 院中可真熱鬧,春花似錦局骤、人聲如沸攀圈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赘来。三九已至,卻和暖如春穴店,著一層夾襖步出監(jiān)牢的瞬間撕捍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國打工泣洞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留忧风,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓球凰,卻偏偏與公主長得像狮腿,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子呕诉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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