今天就跟大家聊聊有關(guān)如何在python中配置pytest框架,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)公司專注于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點(diǎn)出發(fā),讓客戶在網(wǎng)絡(luò)營(yíng)銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對(duì)待客戶,用專業(yè)的服務(wù)創(chuàng)造價(jià)值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。pytest執(zhí)行用例命令行參數(shù)
--collect-only:羅列出所有當(dāng)前目錄下所有的測(cè)試模塊,測(cè)試類及測(cè)試函數(shù)
--tb=style:屏蔽測(cè)試用例執(zhí)行輸出的回溯信息,可以簡(jiǎn)化用例失敗時(shí)的輸出信息。style可以是 on,line,short,具體區(qū)別請(qǐng)自行體驗(yàn)
--lf:當(dāng)一次用例執(zhí)行完成后,如果其中存在失敗的測(cè)試用例,那么我們可以使用此命令重新運(yùn)行失敗的測(cè)試用例
我們第一次執(zhí)行用例,會(huì)看到有2個(gè)用例失敗
我們使用--lf參數(shù)再次運(yùn)行用例,可以發(fā)現(xiàn)只有之前失敗的兩個(gè)用例重新執(zhí)行了一次
--ff:如果上次測(cè)試用例出現(xiàn)失敗的用例,當(dāng)使用--ff后,失敗的測(cè)試用例會(huì)首先執(zhí)行,剩余的用例也會(huì)再次執(zhí)行一次
小結(jié)
以上就是命令行運(yùn)行測(cè)試用例時(shí)經(jīng)常使用到的參數(shù),這些參數(shù)不僅可以單獨(dú)使用,也可以組合一起使用,后期還會(huì)涉及到使用fixture時(shí)的一些命令,現(xiàn)在不需要了解。你可以使用--help來(lái)查看一些命令幫助信息!
pytest收集測(cè)試用例的規(guī)則
1)從一個(gè)或者多個(gè)目錄開(kāi)始查找,你可以在命令行指定文件或者目錄,如果未指定那么從當(dāng)前目錄開(kāi)始收集用例
2)在該目錄和所有子目錄下遞歸查找測(cè)試模塊
3)測(cè)試模塊是指文件名為test_*.py或者*_test.py的文件
4)在測(cè)試模塊中查找以test_開(kāi)頭的函數(shù)
5)查找名字以Test開(kāi)頭的類。其中首先篩選掉包含__init__()函數(shù)的類,再查找類中以Test_開(kāi)頭的類方法
規(guī)則驗(yàn)證
現(xiàn)在我們就依次演示pytest搜索測(cè)試用例的過(guò)程
首先我們按照以下目錄結(jié)構(gòu)新建一個(gè)項(xiàng)目
每個(gè)文件編寫如下代碼(我們只是為了驗(yàn)證規(guī)則,所以用例些的很簡(jiǎn)單,實(shí)際項(xiàng)目不會(huì)存在這樣簡(jiǎn)單的用例)
test_測(cè)試模塊1.py
# 測(cè)試函數(shù) def test_2(): assert 1 == 1 # 普通函數(shù) def func_2(): print('普通函數(shù)') # 測(cè)試類 class TestClass_2(object): # 測(cè)試函數(shù) def test_class_3(self): assert 1 == 1 # 普通函數(shù) def func_class_3(self): assert 1 == 1 # 普通類 class NoTestClass_2(object): # 測(cè)試函數(shù) def test_class_4(self): assert 1 == 1 # 普通函數(shù) def func_class_4(self): assert 1 == 1
test_測(cè)試模塊2.py
# 測(cè)試函數(shù) def test_1(): assert 1==1 # 普通函數(shù) def func_1(): print('普通函數(shù)') # 測(cè)試類 class TestClass_1(object): # 測(cè)試函數(shù) def test_class_1(self): assert 1==1 # 普通函數(shù) def func_class_1(self): assert 1==1 # 普通類 class NoTestClass_1(object): # 測(cè)試函數(shù) def test_class_2(self): assert 1 == 1 # 普通函數(shù) def func_class_2(self): assert 1 == 1
測(cè)試用例.py
# 測(cè)試函數(shù) def test_one(): assert 1==1 # 普通函數(shù) def func(): assert 1==1
代碼分析
我們現(xiàn)在根據(jù)理論分析并結(jié)合代碼,可以大致計(jì)算出,從項(xiàng)目根目錄執(zhí)行用例,應(yīng)該會(huì)執(zhí)行4條有效測(cè)試用例!
我們?cè)陧?xiàng)目根目錄下執(zhí)行pytest --collect-only看下情況,可以發(fā)現(xiàn) 搜索了test_測(cè)試模塊1和test_測(cè)試模塊2文件,并包括TestClass_2和TestClass_1類及內(nèi)部test_class_3和test_class_1 和外部的測(cè)試函數(shù)test_2,test_1.
D:\pytest搜索測(cè)試用例規(guī)則>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搜索測(cè)試用例規(guī)則, inifile: collected 4 items <Package 'D:\\pytest搜索測(cè)試用例規(guī)則\\測(cè)試用例目錄1'> <Module 'test_測(cè)試模塊1.py'> <Function 'test_2'> <Class 'TestClass_2'> <Instance '()'> <Function 'test_class_3'> <Module 'test_測(cè)試模塊2.py'> <Function 'test_1'> <Class 'TestClass_1'> <Instance '()'> <Function 'test_class_1'> ======================== no tests ran in 0.14 seconds =========================
我們大致已經(jīng)能看出pytest的搜索規(guī)則,現(xiàn)在們?cè)賵?zhí)行一下所有用例看下 使用命令 pytest -v??梢钥闯龃_實(shí)只有4個(gè)用例被執(zhí)行了,也就是只識(shí)別到了4個(gè)用例,根據(jù)下面的輸出信息可以看出每個(gè)用例所在的位置
D:\pytest搜索測(cè)試用例規(guī)則>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搜索測(cè)試用例規(guī)則, inifile: collected 4 items 測(cè)試用例目錄1/test_測(cè)試模塊1.py::test_2 PASSED [ 25%] 測(cè)試用例目錄1/test_測(cè)試模塊1.py::TestClass_2::test_class_3 PASSED [ 50%] 測(cè)試用例目錄1/test_測(cè)試模塊2.py::test_1 PASSED [ 75%] 測(cè)試用例目錄1/test_測(cè)試模塊2.py::TestClass_1::test_class_1 PASSED [100%] ========================== 4 passed in 0.07 seconds ===========================
看完上述內(nèi)容,你們對(duì)如何在python中配置pytest框架有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝大家的支持。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文名稱:如何在python中配置pytest框架-創(chuàng)新互聯(lián)
當(dāng)前URL:http://www.rwnh.cn/article36/djhssg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、小程序開(kāi)發(fā)、建站公司、網(wǎng)站導(dǎo)航、品牌網(wǎng)站制作、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容