1.Pytest 介紹和安裝

Maple發表於2020-12-24

pytest介紹

pytest是python的一種單元測試框架,與python自帶的unittest測試框架類似,但是比unittest框架使用起來更簡潔,效率更高

  1. 非常容易上手,入門簡單,文件豐富,文件中有很多例項可以參考

  2. 能夠支援簡單的單元測試和複雜的功能測試

  3. 支援引數化

  4. 執行測試過程中可以將某些測試跳過,或者對某些預期失敗的case標記成失敗

  5. 支援重複執行失敗的case

  6. 支援執行由nose, unittest編寫的測試case

  7. 具有很多第三方外掛,並且可以自定義擴充套件

pytest安裝

執行命令pip install pytest

安裝完成後,檢視pytest版本:pytest --version

能夠看到pytest版本,表示安裝成功

第一個pytest案例

# filename:test_01.py
import pytest


def func(x):
return x + 1


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

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

if __name__ == '__main__':
pytest.main(['-s','test_01.py'])

在test_01.py同級目錄下,直接執行pytest

============================= test session starts =============================
platform win32 -- Python 3.7.1, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
rootdir: D:\study\auto-pytest
collected 2 items

test_01.py .F

================================== FAILURES ===================================
________________________________ test_answer1 _________________________________

def test_answer1():
> assert func(3) == 5
E assert 4 == 5
E + where 4 = func(3)

test_01.py:13: AssertionError
=========================== short test summary info ===========================
FAILED test_01.py::test_answer1 - assert 4 == 5
========================= 1 failed, 1 passed in 0.08s =========================

第一個測試用例passed,第二個測試用例failed

也可使用命令列執行:pytest test_01.py,同樣可以執行測試

pytest注意

命名原則

  • 測試用例檔名必須以test_*.py*_test.py開頭或結尾
  • 如果有類名,必須以Test開頭,沒有__init__函式,測試方法名以test_開頭的函式
  • 沒有類,那麼以函式為單位的函式名必須以test_開頭
  • 資料夾(包名)名可以隨意命名

相關文章