Pytest 快速開始

2021-09-29 23:48:30 字數 1471 閱讀 5633

我們先來感受一下 pytest 的用例,老規矩——待測函式依然是add()

然後再找個資料夾新建乙個 test_demo.py 檔案

最後寫下如下內容:

test_demo.py

import pytest

# 待測函式

defadd

(a, b)

:return a + b

deftest_str()

:"""測試字串"""

a, b =

'1',

'2'assert add(a, b)

=='112'

# => 注意這裡故意搞了個失敗

deftest_int()

:"""測試整型"""

a, b =1,

2assert add(a, b)==3

if __name__ ==

'__main__'

: pytest.main(

)

寫法上和 unittest 很類似。不管是檔名還是用例名,都必須以test_開頭,如test_add.pytest_str()不要去違反它!我們寫了兩個測試用例,test_strtest_int,在 pytest 裡面不拘於測試的形式,類方法和函式都可以,而 xunit 框架必須要寫成用例方法。

pytest 中並沒有定義特定的斷言函式,直接使用原生的assert語句即可,並且豐富了 assert 異常時的結果輸出。

pytest.main()是 pytest 的執行函式,會自動查詢當前資料夾(注意是當前檔案所在的目錄)的所有用例。

我們直接執行這個檔案(如果你用的是 pycharm 並且設定了預設測試執行框架是 pytest,那麼結果並不是由 pytest.main() 生成的,而是由 pycharm 中自動呼叫 pytest 框架執行的結果):

其中每一項已經給大家標記出來了,可以了解一下 pytest 結果中每種含義。這裡面特別需要大家注意的乙個概念就是session,在 pytest 中把當次測試的執行過程(可以是乙個指定的用例、用例檔案或者測試專案),反正也就是說 pytest 的一次執行過程就是乙個 session,這個過程到底執行多少用例取決於 pytest 根據你的指令找到了多少。

理解 session 對我們有什麼用呢,以後測試韌體的範圍可以定義到 session 級別,這將是乙個非常有價值的功能,unittest 是做不到的。能做到哪些呢?

以後再補充?。

其他字段,相信大家都能見文知意。

Nacos Spring Cloud 快速開始

參考位址 本文主要面向 spring cloud 的使用者,通過兩個示例來介紹如何使用 nacos 來實現分布式環境下的配置管理和服務註冊發現。關於 nacos spring cloud 的詳細文件請參看 nacos config 和 nacos discovery。通過 nacos server ...

Hexo 快速開始

hexo 是乙個快速 簡潔且高效的部落格框架,使用 markdown 或其他渲染引擎解析文章,在幾秒內,即可利用靚麗的主題生成靜態網頁 hexo 官網 安裝 hexo 之前需要安裝以下程式 全域性安裝 npm install g hexo cli安裝 hexo 完成後,執行下列命令,hexo 會在指...

RabbitMQ快速開始

第一步 安裝erlang語言環境 rpm ivh erlang 18.3 1.el7.centos.x86 64.rpm 第二步 安裝socat加解密軟體 rpm ivh socat 1.7.3.2 5.el7.lux.x86 64.rpm 第三步 最後安裝rabbitmqrpm ivh rabbi...