Pytest學(xué)習(xí)1 -快速入門

pytest特點(diǎn)

非常容易上手雄右,入門簡單,文檔豐富纺讲,文檔中有很多實(shí)例可以參考
能夠支持簡單的單元測試和復(fù)雜的功能測試
支持參數(shù)化
執(zhí)行測試過程中可以將某些測試跳過(skip),或者對某些預(yù)期失敗的case標(biāo)記成失敗
支持重復(fù)執(zhí)行(rerun)失敗的 case
支持運(yùn)行由 nose, unittest 編寫的測試 case
可生成 html 報(bào)告
方便的和持續(xù)集成工具 jenkins 集成
可支持執(zhí)行部分用例
具有很多第三方插件囤屹,并且可以自定義擴(kuò)展

快速入門

test_demo.py, 示例代碼如下:

# -*- coding: utf-8 -*-

def add(x):
    return x + 2;


class TestClass(object):
    # 測試是否相等
    def test_add(self):
        assert add(2) == 5

    # 測試包含
    def test_in(self):
        a = 'hello world'
        b = 'he'
        assert b in a

    # 測試不包含
    def test_not_in(self):
        a = 'Hello'
        b = 'hi'
        assert b not in a

1熬甚、執(zhí)行
命令行當(dāng)前文件同級目錄下,輸入如下命令:
pytest

說明:
只執(zhí)行 pytest 肋坚,會查找當(dāng)前目錄及其子目錄下以 test_*.py 或 *_test.py 文件乡括,找到文件后,在文件中找到以 test 開頭函數(shù)并執(zhí)行
只想執(zhí)行某個(gè)文件智厌,可以 pytest test_demo.py
加上-q诲泌,就是顯示簡單的結(jié)果: pytest -q test_demo.py
用Pytest寫用例時(shí)候,一定要按照下面的規(guī)則去寫铣鹏,否則不符合規(guī)則的測試用例是不會執(zhí)行的

Pytest用例的設(shè)計(jì)原則

文件名以 test_.py 文件和test.py
以 test
開頭的函數(shù)
以 Test 開頭的類敷扫,不能包含 init 方法
以 test_ 開頭的類里面的方法
所有的包 pakege 必項(xiàng)要有init.py 文件

Pytest執(zhí)行用例規(guī)則

下面以windows系統(tǒng)為例,使用命令來來執(zhí)行pytest

1诚卸、指定目錄下的所有用例
pytest

2葵第、執(zhí)行某一個(gè)py文件下用例
pytest 文件名.py

3绘迁、運(yùn)行test_demo.py文件中模塊里面的某個(gè)函數(shù),或者某個(gè)類,某個(gè)類里面的方法
說明:加v和不加-v都可以卒密,加-v的話缀台,打印的信息更詳細(xì)

pytest -v test_demo.py::TestClass::test_add
pytest test_demo.py::TestClass::test_not_in
pytest test_demo.py::test_in

4、運(yùn)行test_demo.py 模塊里面,測試類里面的某個(gè)方法
pytest test_demo.py::test_in

5哮奇、-m 標(biāo)記表達(dá)式(后面有詳解)
pytest -m login
將運(yùn)行用 @pytest.mark.login 裝飾器修飾的所有測試膛腐,后面有詳解!

6、-q 簡單打印鼎俘,只打印測試用例的執(zhí)行結(jié)果
pytest -q test_demo.py

7依疼、-s 詳細(xì)打印
pytest -s test_demo.py

8、-x 遇到錯(cuò)誤時(shí)停止測試
pytest test_demo.py -x

9而芥、—maxfail=num律罢,當(dāng)用例錯(cuò)誤個(gè)數(shù)達(dá)到指定數(shù)量時(shí),停止測試
pytest test_demo.py --maxfail=1

10棍丐、-k 匹配用例名稱
pytest -s -k _in test_demo.py

11误辑、-k 根據(jù)用例名稱排除某些用例
pytest -s -k "not _in" test_demo.py

12、-k 同時(shí)匹配不同的用例名稱
pytest -s -k "add or _in" test_demo.py

使用Pycharm執(zhí)行pytest

1歌逢、File->settings->python integrated tools->Testing下的default testrunner修改為Pytest

注意:
pytest兼容unittest腳本,所以不影響之前使用unittest編寫的腳本

2巾钉、并不是修改完以上配置,就一定好用秘案,如上面方法修改完仍不好用砰苍,參考下面方案:
檢查pycharm中的python interpreter是否設(shè)置為Python安裝目錄下的Python.exe
pycharm設(shè)置為國內(nèi)源,如豆瓣阱高、清華赚导、阿里云等等!

3赤惊、如果和我一樣之前使用IDEA中pytest插件編碼的話吼旧,在進(jìn)行完以上兩步操作后,執(zhí)行如下操作:
打開IDEA未舟,將settings->python integrated tools->Testing下的default testrunner修改為Pytest
你會在打開的.py文件右上角看到提示圈暗,提示你選擇Python的sdk路徑,選擇為Python安裝目錄下的Python.exe裕膀,確定后员串,會自動(dòng)編譯更新,更新完你會發(fā)現(xiàn)使用IDEA可以使用pytest運(yùn)行了
再回頭查看pycharm這時(shí)候也提示你選擇sdk的安裝目錄昼扛,同上選擇好Python安裝目錄寸齐,也會自動(dòng)編譯更新,更新完后,你會發(fā)現(xiàn)使用pycharm也可以使用pytest運(yùn)行了


參考鏈接
https://wap.peopleapp.com/atlas/6015291
系列參考文章:
https://www.cnblogs.com/poloyy/category/1690628.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末访忿,一起剝皮案震驚了整個(gè)濱河市瞧栗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌海铆,老刑警劉巖迹恐,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異卧斟,居然都是意外死亡殴边,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門珍语,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锤岸,“玉大人,你說我怎么就攤上這事板乙∈峭担” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵募逞,是天一觀的道長蛋铆。 經(jīng)常有香客問我,道長放接,這世上最難降的妖魔是什么刺啦? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮纠脾,結(jié)果婚禮上玛瘸,老公的妹妹穿的比我還像新娘。我一直安慰自己苟蹈,他們只是感情好糊渊,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著汉操,像睡著了一般再来。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上磷瘤,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機(jī)與錄音搜变,去河邊找鬼采缚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛挠他,可吹牛的內(nèi)容都是我干的扳抽。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贸呢!你這毒婦竟也來了镰烧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤楞陷,失蹤者是張志新(化名)和其女友劉穎怔鳖,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體固蛾,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡结执,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了艾凯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片献幔。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖趾诗,靈堂內(nèi)的尸體忽然破棺而出蜡感,到底是詐尸還是另有隱情,我是刑警寧澤恃泪,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布郑兴,位于F島的核電站,受9級特大地震影響悟泵,放射性物質(zhì)發(fā)生泄漏杈笔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一糕非、第九天 我趴在偏房一處隱蔽的房頂上張望蒙具。 院中可真熱鬧,春花似錦朽肥、人聲如沸禁筏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽篱昔。三九已至,卻和暖如春始腾,著一層夾襖步出監(jiān)牢的瞬間州刽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工浪箭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留穗椅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓奶栖,卻偏偏與公主長得像匹表,于是被迫代替她去往敵國和親门坷。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348