91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在python中配置pytest框架

發布時間:2021-03-16 15:12:09 來源:億速云 閱讀:191 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關如何在python中配置pytest框架,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

pytest執行用例命令行參數

--collect-only:羅列出所有當前目錄下所有的測試模塊,測試類及測試函數

如何在python中配置pytest框架

--tb=style:屏蔽測試用例執行輸出的回溯信息,可以簡化用例失敗時的輸出信息。style可以是 on,line,short,具體區別請自行體驗

如何在python中配置pytest框架

--lf:當一次用例執行完成后,如果其中存在失敗的測試用例,那么我們可以使用此命令重新運行失敗的測試用例

我們第一次執行用例,會看到有2個用例失敗

如何在python中配置pytest框架

我們使用--lf參數再次運行用例,可以發現只有之前失敗的兩個用例重新執行了一次

如何在python中配置pytest框架

--ff:如果上次測試用例出現失敗的用例,當使用--ff后,失敗的測試用例會首先執行,剩余的用例也會再次執行一次

如何在python中配置pytest框架

小結

以上就是命令行運行測試用例時經常使用到的參數,這些參數不僅可以單獨使用,也可以組合一起使用,后期還會涉及到使用fixture時的一些命令,現在不需要了解。你可以使用--help來查看一些命令幫助信息!

pytest收集測試用例的規則

1)從一個或者多個目錄開始查找,你可以在命令行指定文件或者目錄,如果未指定那么從當前目錄開始收集用例

2)在該目錄和所有子目錄下遞歸查找測試模塊

3)測試模塊是指文件名為test_*.py或者*_test.py的文件

4)在測試模塊中查找以test_開頭的函數

5)查找名字以Test開頭的類。其中首先篩選掉包含__init__()函數的類,再查找類中以Test_開頭的類方法

規則驗證

現在我們就依次演示pytest搜索測試用例的過程

首先我們按照以下目錄結構新建一個項目

如何在python中配置pytest框架

每個文件編寫如下代碼(我們只是為了驗證規則,所以用例些的很簡單,實際項目不會存在這樣簡單的用例)

test_測試模塊1.py

 # 測試函數
 def test_2():
 assert 1 == 1
 # 普通函數
 def func_2():
 print('普通函數') 
 # 測試類
 class TestClass_2(object):
# 測試函數
def test_class_3(self):
assert 1 == 1
# 普通函數
def func_class_3(self):
assert 1 == 1
# 普通類
class NoTestClass_2(object):
# 測試函數
def test_class_4(self):
assert 1 == 1
 # 普通函數
 def func_class_4(self):
 assert 1 == 1

test_測試模塊2.py

 # 測試函數 
 def test_1(): 
 assert 1==1
 # 普通函數
 def func_1():
 print('普通函數')
# 測試類
class TestClass_1(object):
# 測試函數
def test_class_1(self):
assert 1==1
# 普通函數
def func_class_1(self):
assert 1==1
# 普通類
class NoTestClass_1(object):
# 測試函數
def test_class_2(self):
assert 1 == 1
# 普通函數
def func_class_2(self):
assert 1 == 1

測試用例.py

 # 測試函數
 def test_one():
 assert 1==1
 # 普通函數
 def func():
 assert 1==1

代碼分析

我們現在根據理論分析并結合代碼,可以大致計算出,從項目根目錄執行用例,應該會執行4條有效測試用例!

我們在項目根目錄下執行pytest --collect-only看下情況,可以發現 搜索了test_測試模塊1和test_測試模塊2文件,并包括TestClass_2和TestClass_1類及內部test_class_3和test_class_1 和外部的測試函數test_2,test_1.

D:\pytest搜索測試用例規則>pytest --collect-only
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1
rootdir: D:\pytest搜索測試用例規則, inifile:
collected 4 items
<Package 'D:\\pytest搜索測試用例規則\\測試用例目錄1'>
<Module 'test_測試模塊1.py'>
<Function 'test_2'>
<Class 'TestClass_2'>
<Instance '()'>
<Function 'test_class_3'>
<Module 'test_測試模塊2.py'>
<Function 'test_1'>
<Class 'TestClass_1'>
<Instance '()'>
<Function 'test_class_1'>
======================== no tests ran in 0.14 seconds =========================

我們大致已經能看出pytest的搜索規則,現在們再執行一下所有用例看下 使用命令 pytest -v。可以看出確實只有4個用例被執行了,也就是只識別到了4個用例,根據下面的輸出信息可以看出每個用例所在的位置

D:\pytest搜索測試用例規則>pytest -v
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1 -- c:\python36\python.exe
cachedir: .pytest_cache
rootdir: D:\pytest搜索測試用例規則, inifile:
collected 4 items
測試用例目錄1/test_測試模塊1.py::test_2 PASSED [ 25%]
測試用例目錄1/test_測試模塊1.py::TestClass_2::test_class_3 PASSED [ 50%]
測試用例目錄1/test_測試模塊2.py::test_1 PASSED [ 75%]
測試用例目錄1/test_測試模塊2.py::TestClass_1::test_class_1 PASSED [100%]
========================== 4 passed in 0.07 seconds ===========================

看完上述內容,你們對如何在python中配置pytest框架有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

河池市| 武乡县| 澄江县| 资源县| 肇源县| 建湖县| 灵丘县| 平凉市| 重庆市| 成都市| 长沙市| 灯塔市| 康保县| 枣阳市| 宁晋县| 清远市| 宁河县| 揭东县| 崇明县| 大邑县| 且末县| 杨浦区| 石台县| 浙江省| 忻州市| 锡林郭勒盟| 隆德县| 华蓥市| 洪江市| 巴彦淖尔市| 阿尔山市| 桃园县| 囊谦县| 丰顺县| 土默特左旗| 彭州市| 手游| 佛山市| 花莲县| 镇赉县| 紫阳县|