pytest官方文檔解讀Fixture?errors拋錯(cuò)解決
既然fixtures函數(shù)也是咱們自己寫的,那難免會(huì)發(fā)生異常,當(dāng)fixture函數(shù)異常后,pytest中如何處理呢?
首先,在pytest中,如果一個(gè)測(cè)試函數(shù)中傳入了多個(gè)fixture函數(shù),那么pytest會(huì)盡可能的按線性順序先后執(zhí)行。
如果,先執(zhí)行的fixture函數(shù)有問(wèn)題引發(fā)了異常,那么pytest將會(huì)停止執(zhí)行這個(gè)測(cè)試函數(shù)的fixture,并且標(biāo)記此測(cè)試函數(shù)有錯(cuò)誤。
但是,當(dāng)測(cè)試被標(biāo)記為有錯(cuò)誤時(shí),并不是說(shuō)這個(gè)測(cè)試函數(shù)的結(jié)果失敗了,這僅僅意味著測(cè)試函數(shù)所依賴的fixture有問(wèn)題,
導(dǎo)致測(cè)試函數(shù)不能正常進(jìn)行。
所以,這就引出了另一個(gè)值得關(guān)注的點(diǎn):fixture雖靈活好用,切記不要濫用。
在實(shí)際應(yīng)用中,要盡可能的減少不必要的依賴關(guān)系。這樣的話,測(cè)試函數(shù)就不會(huì)因?yàn)槠渌幌嚓P(guān)的問(wèn)題,導(dǎo)致自己不能正常運(yùn)行。
結(jié)合代碼示例,進(jìn)一步了解:
import pytest @pytest.fixture def order(): return [] @pytest.fixture def append_first(order): order.append(1) @pytest.fixture def append_second(order, append_first): order.extend([2]) @pytest.fixture(autouse=True) def append_third(order, append_second): order += [3] def test_order(order): assert order == [1, 2, 3]
首先聲明,這段代碼是可以正常運(yùn)行的,測(cè)試函數(shù)test_order也是正常通過(guò)的。
假設(shè),不管怎樣,在order.append(1)處總會(huì)報(bào)錯(cuò)。這時(shí)候,我們其實(shí)無(wú)法確定order.extend([2])或order +=[3]是否也有問(wèn)題。
在append_first報(bào)錯(cuò)拋出異常后,pytest就不會(huì)繼續(xù)運(yùn)行任何的fixture函數(shù)了,就連測(cè)試函數(shù)test_order本身也不會(huì)運(yùn)行。
以上就是pytest官方文檔解讀Fixture errors拋錯(cuò)解決的詳細(xì)內(nèi)容,更多關(guān)于pytest Fixture errors拋錯(cuò)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python3 實(shí)現(xiàn)爬取網(wǎng)站下所有URL方式
今天小編就為大家分享一篇Python3 實(shí)現(xiàn)爬取網(wǎng)站下所有URL方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Pycharm學(xué)習(xí)教程(3) 代碼運(yùn)行調(diào)試
這篇文章主要為大家詳細(xì)介紹了最全的Pycharm學(xué)習(xí)教程第三篇代碼運(yùn)行調(diào)試,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05python實(shí)現(xiàn)自動(dòng)化報(bào)表功能(Oracle/plsql/Excel/多線程)
這篇文章主要介紹了python實(shí)現(xiàn)自動(dòng)化報(bào)表(Oracle/plsql/Excel/多線程)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12Python 異常的捕獲、異常的傳遞與主動(dòng)拋出異常操作示例
這篇文章主要介紹了Python 異常的捕獲、異常的傳遞與主動(dòng)拋出異常操作,結(jié)合實(shí)例形式詳細(xì)分析了Python針對(duì)異常捕獲、傳遞、處理等常見(jiàn)操作技巧,需要的朋友可以參考下2019-09-09Python小整數(shù)對(duì)象池和字符串intern實(shí)例解析
這篇文章主要介紹了Python小整數(shù)對(duì)象池和字符串intern實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Python類方法__init__和__del__構(gòu)造、析構(gòu)過(guò)程分析
這篇文章主要介紹了Python類方法__init__和__del__構(gòu)造、析構(gòu)過(guò)程分析,本文分析了什么時(shí)候構(gòu)造、什么時(shí)候析構(gòu)、成員變量如何處理、Python中的共享成員函數(shù)如何訪問(wèn)等問(wèn)題,需要的朋友可以參考下2015-03-03Python實(shí)現(xiàn)Linux下守護(hù)進(jìn)程的編寫方法
這篇文章主要介紹了Python實(shí)現(xiàn)Linux下守護(hù)進(jìn)程的編寫方法,比較實(shí)用的一個(gè)技巧,需要的朋友可以參考下2014-08-08利用matplotlib+numpy繪制多種繪圖的方法實(shí)例
matplotlib是Python最著名的繪圖庫(kù),本文給大家分享了利用matplotlib+numpy繪制多種繪圖的方法實(shí)例,其中包括填充圖、散點(diǎn)圖(scatter plots)、. 條形圖(bar plots)、等高線圖(contour plots)、 點(diǎn)陣圖和3D圖,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-05-05