pytest常用配置文件之pytest.ini

pytest.ini:pytest的主配置文件,可以改變pytest的默認(rèn)行為炉抒,有很多可配置的選項(xiàng)球拦。
conftest.py:是本地的插件庫置森,其中的hook函數(shù)和fixture將作用于該文件所在的目錄以及所有子目錄肥矢。
init.py:每個(gè)測試子目錄都包含該文件時(shí)绩脆,那么在多個(gè)測試目錄中可以出現(xiàn)同名測試文件。

常用配置:

1橄抹、addopts

作用:addopts參數(shù)可以更改默認(rèn)命令行選項(xiàng),當(dāng)我們在cmd或Terminal輸入一堆指令去執(zhí)行用例的時(shí)候惕味,就可以用該參數(shù)代替了楼誓,省去重復(fù)性的敲命令工作。命令行只需要輸入pytest即可

--reruns=1:用例失敗重跑一次

-p no:warnings, :不在結(jié)果中輸出用例的告警信息

2名挥、配置項(xiàng)testpaths

testpaths指示pytest去哪里訪問疟羹。testpaths是相對于根目錄的路徑,限定測試用例的搜索范圍禀倔。只有在命令行執(zhí)行pytest未指定文件目錄參數(shù)或測試用例標(biāo)識符時(shí)榄融,該選項(xiàng)才生效。

3救湖、xfail_strict = true

由@pytest.mark.xfail裝飾愧杯,但實(shí)際通過的測試用例結(jié)果為xpassed的用例被報(bào)告為失敗,如下test_5所示:

@pytest.mark.run(order=5)
@pytest.mark.xfail(condition=True,reason='test_s預(yù)期失敗結(jié)果也失敗鞋既,就是預(yù)期失敗成功了力九,結(jié)果xfailed')
def test_2(self):
    print("*****test_2******")
    assert 2==1

@pytest.mark.xfail(condition=True,reason='test_s預(yù)期失敗卻通過,就是預(yù)期失敗失敗了xpassed')
def test_5(self):
    print("*****test_5******")
    assert 2==2
4邑闺、log_cli 是否開啟打印日志

格式:log_cli=True 或False(默認(rèn))跌前,或者log_cli=1 或 0 ;log_cli=1 可以看到哪個(gè)package下的哪個(gè)module下的哪個(gè)測試用例是否passed還是failed陡舅;

log_cli = 1
log_cli_level = INFO
log_cli_format = %(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)
log_cli_date_format=%Y-%m-%d %H:%M:%S

************************************pytest 知識點(diǎn)匯總************************************

單元測試框unittest,pytest
unittest是官方的抵乓,不需要單獨(dú)安裝,pytest是在unittest上擴(kuò)展的,是需要安裝的
pip install pytest

如何批量運(yùn)行測試用例
如何斷言
怎樣生成測試報(bào)告(可以是html灾炭,或aller集成)
基于上面的3個(gè)問題茎芋,引入了單元測試框架unittest、pytest

一咆贬、pytest特點(diǎn)如下(比unittest更簡潔更高效):

1败徊、測試文件必須“test_”開頭或“test”結(jié)尾
2、測試方法必須以“test
”開頭
3掏缎、測試類命名以"Test"開頭

區(qū)別:
unittest必須寫到類里皱蹦,類繼承unittest.testcases,pytest的類直接Test開頭即可,還可以直接寫函數(shù)

二眷蜈、fixture函數(shù)

1沪哺、setup_function() 函數(shù)執(zhí)行前的操作
2、setup_module() 模塊之前酌儒,python文件之前
3辜妓、setup_method() 在方法之前執(zhí)行
4、setup_class() 在每個(gè)類之前執(zhí)行

如果是unittest的話忌怎,需要裝飾器 如下所示:

class Test(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print("start!")
#初始化環(huán)境 開始執(zhí)行腳本
    @classmethod
    def tearDownClass(cls):
        time.sleep(1)
        print("end!")
#結(jié)束
    def test01(self):
        print(u"執(zhí)行測試用例01")
#開始執(zhí)行測試用例...
    def test03(self):
       print(u"執(zhí)行測試用例03")

    def test02(self):
        print(u"執(zhí)行測試用例02")

    def addtest(self):
        print(u"add方法")

if __name__ == "__main__":
  unittest.main()
三籍滴、命令行參數(shù)

pytest -sv test_study.py -s會把print打印出來,v打印的更詳細(xì)

四榴啸、失敗重試

pip install pytest-rerunfailures
命令行加參數(shù)即可 --reruns 3 (重試3次)

pytest -sv test_study.py --reruns 2    斷言失敗重試2次
五孽惰、跳過測試函數(shù)

加裝飾器
@pytest.mark.skipif(condition,reason=None) 有條件跳過
@pytest.mark.skip 無條件跳過

六、預(yù)期失敗

@pytest.mark.xfail(condition,reason=None)
2 passed, 1 skipped, 1 xpassed, 1 xfailed, 1 warning in 0.04s 運(yùn)行結(jié)果中的xpassed是預(yù)期失敗卻斷言成功了; xfailed預(yù)期失敗卻斷言失敗了,

七鸥印、調(diào)整測試用例執(zhí)行的順序(正常執(zhí)行順序是按asc碼云運(yùn)行的勋功,)

pip install pytest-ordering
加裝飾器 @pytest.mark.run(order=x)
order值全正或全負(fù)時(shí),值越小库说,優(yōu)先級越高
正負(fù)數(shù)都有時(shí)狂鞋,正數(shù)優(yōu)先級高

參考連接:
https://www.cnblogs.com/liuchunxiao83/p/14675063.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市潜的,隨后出現(xiàn)的幾起案子骚揍,更是在濱河造成了極大的恐慌,老刑警劉巖夏块,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疏咐,死亡現(xiàn)場離奇詭異,居然都是意外死亡脐供,警方通過查閱死者的電腦和手機(jī)浑塞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來政己,“玉大人酌壕,你說我怎么就攤上這事掏愁。” “怎么了卵牍?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵果港,是天一觀的道長。 經(jīng)常有香客問我糊昙,道長辛掠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任释牺,我火速辦了婚禮萝衩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘没咙。我一直安慰自己猩谊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布祭刚。 她就那樣靜靜地躺著牌捷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涡驮。 梳的紋絲不亂的頭發(fā)上暗甥,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機(jī)與錄音捉捅,去河邊找鬼淋袖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛锯梁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播焰情,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼陌凳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了内舟?” 一聲冷哼從身側(cè)響起合敦,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎验游,沒想到半個(gè)月后充岛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡耕蝉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年崔梗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垒在。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蒜魄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谁不,到底是詐尸還是另有隱情埃碱,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布笼吟,位于F島的核電站伞鲫,受9級特大地震影響粘茄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秕脓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一柒瓣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧撒会,春花似錦嘹朗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至怔檩,卻和暖如春褪秀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背薛训。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工媒吗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人乙埃。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓闸英,卻偏偏與公主長得像,于是被迫代替她去往敵國和親介袜。 傳聞我的和親對象是個(gè)殘疾皇子甫何,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

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