python單元測(cè)試框架pytest介紹
pytest是python語(yǔ)言中一款強(qiáng)大的單元測(cè)試框架,用來(lái)管理和組織測(cè)試用例,可應(yīng)用在單元測(cè)試、自動(dòng)化測(cè)試工作中。
unittest也是python語(yǔ)言中一款單元測(cè)試框架,但是功能有限,沒有pytest靈活。
就像:蘋果電腦mac air和mac pro一樣。都是具備同樣的功能,但是好用,和更好用。
本文包含以下幾個(gè)內(nèi)容點(diǎn):
- 1)pytest的簡(jiǎn)單示例
- 2)pytest的安裝
- 3)pytest的特征、與unittest的區(qū)別。
- 4) pytest如何自動(dòng)識(shí)別用例。
- 5)pytest框架中,用例的運(yùn)行順序。
1)pytest寫用例很簡(jiǎn)單
下面是一個(gè)簡(jiǎn)單的例子:
import random def test_demo(): assert 7 == random.randint(0,10)
運(yùn)行結(jié)果如下:
============================= test session starts ============================= platform win32 -- Python 3.7.2, pytest-4.6.3, py-1.8.0, pluggy-0.12.0 rootdir: D:\Pychram-Workspace\STUDY_PYTEST plugins: allure-pytest-2.6.5, html-1.21.1, metadata-1.8.0, rerunfailures-7.0collected 1 item simple.py F simple.py:10 (test_demo) 7 != 6 Expected :6 Actual :7 ========================== 1 failed in 0.14 seconds ===========================
2)pytest的安裝
安裝命令:
pip install pytest
3)pytest的特征、與unittest的區(qū)別。
pytest的特征如下:
- 3.1 自動(dòng)識(shí)別測(cè)試用例。(unittest當(dāng)中,需要引入TestSuite,主動(dòng)加載測(cè)試用例。)
- 3.2 簡(jiǎn)單的斷言表達(dá):assert表達(dá)式即可。(unittest當(dāng)中,self.assert*)
- 3.3 有測(cè)試會(huì)話、測(cè)試模塊、測(cè)試類、測(cè)試函數(shù)級(jí)別的fixture。(unittest當(dāng)中是測(cè)試類、測(cè)試函數(shù)級(jí)別的fixture)
- 3.4有非常豐富的插件,目前在600+,比如allure插件。(unittest無(wú))
- 3.5測(cè)試用例不需要封裝在測(cè)試類當(dāng)中。(unittest中需要自定義類并繼承TestCase)
那么pytest是如何自動(dòng)識(shí)別測(cè)試用例的呢?我們?cè)诰帉憄ytest用例的時(shí)候,需要遵守哪些規(guī)則呢?
4) pytest如何自動(dòng)識(shí)別用例
識(shí)別規(guī)則如下:
1、搜索根目錄:默認(rèn)從當(dāng)前目錄中搜集測(cè)試用例,即在哪個(gè)目錄下運(yùn)行pytest命令,則從哪個(gè)目錄當(dāng)中搜索;
2、搜索規(guī)則:
1)搜索文件:符合命名規(guī)則 test_*.py 或者 *_test.py 的文件
2)在滿足1)的文件中識(shí)別用例的規(guī)則:
- 2.1)以test_開頭的函數(shù)名;
- 2.2)以Test開頭的測(cè)試類(沒有__init__函數(shù))當(dāng)中,以test_開頭的函數(shù)
示例:在D:\pycharm_workspace目錄下,創(chuàng)建一個(gè)python工程,名為study_pytest。在工程下,創(chuàng)建一個(gè)python包,包名為TestCases。
在包當(dāng)中,創(chuàng)建一個(gè)測(cè)試用例文件:test_sample_1.py。文件內(nèi)容如下:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 定義py文件下的測(cè)試用例
def test_sample():
print("我是測(cè)試用例!")
class TestSample:
def test_ss(self):
print("我也是測(cè)試用例!")
def hello_pytest(self):
print("hi,pytest,我不是用例哦??!")按照上面定義的搜索規(guī)則,需要跳轉(zhuǎn)到工程目錄,然后再執(zhí)行命令:pytest -v 。 執(zhí)行結(jié)果如下:

讓我們愉快的加進(jìn)來(lái)第2個(gè)測(cè)試文件:test_sample_2.py,內(nèi)容如下:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
def add(a,*args):
sum = a
for item in args:
sum += item
return sum
def test_add_two_number():
assert 33 == add(11,22)
assert 55.55 == add(22.22,33.33)
def test_add_three_number():
assert 101 == add(10,90,1)再次運(yùn)行命令:pytest -v 得到如下結(jié)果:

通過(guò)多個(gè)用例文件的執(zhí)行,可以看出用例的執(zhí)行順序。
5) pytest中用例的執(zhí)行順序
原則:先搜索到的py文件中的用例,先執(zhí)行。在同一py文件當(dāng)中,按照代碼順序,先搜索到的用例先執(zhí)行。
到此這篇關(guān)于python單元測(cè)試框架pytest的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python+tkinter制作經(jīng)典登錄界面和點(diǎn)擊事件
Tkinter是?Python?標(biāo)準(zhǔn)?GUI?庫(kù),簡(jiǎn)稱?“Tk”;從本質(zhì)上來(lái)說(shuō),它是對(duì)?TCL/TK?工具包的一種?Python?接口封裝。本文將利用tkinter制作一個(gè)經(jīng)典的登錄界面和點(diǎn)擊事件,需要的可以參考一下2022-09-09
pycharm中import呈現(xiàn)灰色原因的解決方法
這篇文章主要介紹了pycharm中import呈現(xiàn)灰色原因的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
python之DataFrame實(shí)現(xiàn)excel合并單元格
這篇文章主要為大家詳細(xì)介紹了python之DataFrame實(shí)現(xiàn)excel合并單元格,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
python實(shí)現(xiàn)輸入任意一個(gè)大寫字母生成金字塔的示例
這篇文章主要介紹了python實(shí)現(xiàn)輸入任意一個(gè)大寫字母生成金字塔的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Python實(shí)戰(zhàn)之實(shí)現(xiàn)簡(jiǎn)單的名片管理系統(tǒng)
這篇文章主要介紹了Python實(shí)戰(zhàn)之實(shí)現(xiàn)簡(jiǎn)單的名片管理系統(tǒng),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
Selenium環(huán)境變量配置(火狐瀏覽器)及驗(yàn)證實(shí)現(xiàn)
這篇文章主要介紹了Selenium環(huán)境變量配置(火狐瀏覽器)及驗(yàn)證實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Python利用PySimpleGUI實(shí)現(xiàn)自制桌面翻譯神器
工作上經(jīng)常需要與外國(guó)友人郵件溝通,奈何工作電腦沒有安裝有道詞典一類的翻譯軟件,結(jié)合自己的需要,自己用PySimpleGUI擼一個(gè)桌面翻譯神器,感興趣的可以了解一下2022-09-09
python爬蟲beautifulsoup庫(kù)使用操作教程全解(python爬蟲基礎(chǔ)入門)
這篇文章主要介紹了python爬蟲beautifulsoup庫(kù)使用操作全解(python爬蟲基礎(chǔ)入門),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Python Faker批量生成測(cè)試數(shù)據(jù)的實(shí)現(xiàn)
本文主要介紹了Python Faker批量生成測(cè)試數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11

