1. 程式人生 > 其它 >001、pytest安裝和第一個demo

001、pytest安裝和第一個demo

參考資料:http://www.python3.vip/tut/auto/pytest/01/

https://www.cnblogs.com/yoyoketang/p/9356693.html

    

pytest 可以用來做 系統測試 的自動化, 它的特點有

  • 用 Python 編寫測試用例,簡便易用

  • 可以用 檔案系統目錄層次 對應 手工測試用例 層次結構

  • 靈活的 初始化清除 機制

  • 可以靈活挑選測試用例執行

  • 利用第三方外掛,可以生成不錯的報表

pytest 用例規則

  • 測試檔案以 test_ 開頭(以 _test結尾 也可以)
  • 測試類以 Test開頭,並且不能帶有__init__
    方法
  • 測試函式以 test_ 開頭
  • 斷言使用 assert
  • 所有的包pakege必須要有 __init__.py 檔案

pytest執行規則:

  專案目錄下執行 pytest —> 尋找 當前目錄及子目錄下以test_*.py 或 *_test.py 的檔案 —> 尋找 Test開頭的類 —> 尋找以test開頭函式 。

1、安裝

  虛擬環境安裝, 按住 ctrl + alt + s 彈出如下介面,並按箭頭指示選擇,安裝成功後會顯示 installed successfully。

  

我們還需要產生測試報表,所以要安裝一個第三方外掛pytest-html,方法同上。

2、快速開始

1.新建一個test_sample.py檔案,寫以下程式碼:

# -*- coding:utf-8 -*-
# @Author:  Sky
# @Email:   [email protected]
# @Time:    2021/7/13 14:55

def func(x):
    return x +1


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

2.開啟test_sample.py所在的目錄(test_01),cmd視窗輸入:pytest(或者輸入py.test也可以)

3、pytest執行規則

  專案目錄下執行 pytest —> 尋找 當前目錄及子目錄下以 test_*.py 或 *_test.py 的檔案 —> 尋找 Test開頭的類 —> 尋找以 test開頭函式 。

寫個測試類

1、前面是寫的一個test開頭的測試函式,當用例有多個的時候,寫函式就不太合適了。這時可以把多個測試用例,寫到一個測試類裡。

# test_class.py

class TestClass:
    def test_one(self):
        x = "this"
        assert 'h' in x

    def test_two(self):
        x = "hello"
        assert hasattr(x, 'check') 

說明: hasattr(object, name)
判斷一個物件裡面是否有name屬性或者name方法,返回BOOL值,有name特性返回True, 否則返回False 。
需要注意的是name要用括號括起來 。

2、如果只想執行其中一個 (test_*.py 和 *_test.py),可以指定傳遞檔名test_class.py ( 相對路徑 或 絕對路徑 )來執行模組 :

pytest -q .\test_sample.py

備註: -q, --quiet decrease verbosity( 顯示簡單結果)