Pytest系列(1) - 快速入門和基礎講解

若是你還想從頭學起Pytest,能夠看看這個系列的文章哦!html

https://www.cnblogs.com/poloyy/category/1690628.htmlpython

 

前言

  • 目前有兩種純測試的測試框架,pytest和unittest
  • unittest應該是廣爲人知,並且也是老框架了,不少人都用來作自動化,不管是UI仍是接口
  • pytest是基於unittest開發的另外一款更高級更好用的單元測試框架
  • 出去面試也好,跟別人提及來也好,pytest的逼格明顯高於unittest

 

爲何要用Pytest

pytest 的官方網站介紹,它具備以下特色:

  1. 很是容易上手,入門簡單,文檔豐富,文檔中有不少實例能夠參考
  2. 可以支持簡單的單元測試和複雜的功能測試
  3. 支持參數化
  4. 執行測試過程當中能夠將某些測試跳過(skip),或者對某些預期失敗的case標記成失敗
  5. 支持重複執行(rerun)失敗的 case
  6. 支持運行由 nose, unittest 編寫的測試 case
  7. 可生成 html 報告
  8. 方便的和持續集成工具 jenkins 集成
  9. 可支持執行部分用例
  10. 具備不少第三方插件,而且能夠自定義擴展

 

安裝Pytest

cmd運行

pip install -U pytest pip3 install pytest -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

查看版本

pytest --version

 

快速開始

#!/usr/bin/env python # -*- coding: utf-8 -*-

""" __title__ = __Time__ = 2020-04-06 12:33 __Author__ = 小菠蘿測試筆記 __Blog__ = https://www.cnblogs.com/poloyy/ """

def func(x): return x + 1


def test_answer(): assert func(3) == 5


class TestClass: def test_one(self): x = "this"
        assert "h" in x def test_two(self): x = "hello"
        assert hasattr(x, "check")

而後,cmd進入當前文件目錄,直接執行面試

pytest

 

知識點

  • 若是隻執行 pytest ,會查找當前目錄及其子目錄下以  test_*.py  或 *_test.py 文件,找到文件後,在文件中找到以  test 開頭函數並執行
  • 若是隻想執行某個文件,能夠 pytest start.py 
  • 加上-q,就是顯示簡單的結果: pytest -q start.py 

 

Pytest用例的設計原則

用Pytest寫用例時候,必定要按照下面的規則去寫,不然不符合規則的測試用例是不會執行的框架

  • 文件名以 test_*.py 文件和*_test.py
  • 以  test_ 開頭的函數
  • 以  Test 開頭的類,不能包含 __init__ 方法
  • 以  test_ 開頭的類裏面的方法
  • 全部的包 pakege 必項要有__init__.py 文件

 

Pytest執行用例規則

注意,下面講的都是在cmd中執行pytest命令函數

一、某個目錄下全部的用例

pytest

 

二、執行某一個 py 文件下用例 

pytest 腳本名稱.py

  

三、運行start.py 模塊裏面的某個函數,或者某個類,某個類裏面的方法

加v和不加-v均可以,加-v的話,打印的信息更詳細工具

pytest -v 08_mark.py::TestClass::test_method pytest 08_mark.py::TestClass::test_method pytest start.py::test_answer

 

四、運行start.py 模塊裏面,測試類裏面的某個方法

pytest start.py::TestClass::test_two
 

五、-m 標記表達式(後續講解)

pytest -m login

將運行用 @pytest.mark.login 裝飾器修飾的全部測試,後面再展開講標記哦單元測試

 

六、-q 簡單打印,只打印測試用例的執行結果

pytest -q start.py

 

七、-s 詳細打印

pytest -s start.py

 

八、-x 遇到錯誤時中止測試

pytest start.py -x

 

九、—maxfail=num,當用例錯誤個數達到指定數量時,中止測試

pytest start.py --maxfail=1

 

十、-k 匹配用例名稱

執行測試用例名稱包含http的全部用例測試

pytest -s -k http start.py

 

十一、-k 根據用例名稱排除某些用例

1 pytest -s -k "not http" start.py

 

十二、-k 同時匹配不一樣的用例名稱

pytest -s -k "method or weibo" start.py

 

Pycharm運行Pytest

平時寫代碼,我們都在Pycharm寫的,怎麼可能一直用cmd來跑用例呢,如今咱們就來看看在Pycharm中如何運行Pytest網站

  1. 首先,咱們先要去settings裏面設置單元測試框架爲Pytest
  2. 若是是nosetests的話,右鍵運行是以python腳本運行的哦
  3. 若是設置了unittest則是以unittest框架去運行

 

注意

pytest 是能夠兼容 unittest 腳本的,以前寫的 unittest 用例也能用 pytest 框架去運行

 

本文分享 CNBlog - 阿菠蘿阿瑤。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。this

相關文章
相關標籤/搜索