pytest(四)在pytest中也有傳統(tǒng)的setup/teardown哦

傳統(tǒng)測試框架中,類似setup和teardown的功能是必不可少的。做過測試的小伙伴們肯定知道,在運行一條測試用例時,總會在測試前要做一些預(yù)配置(configuration)或者預(yù)條件(precondition),然后在測試完后就要恢復(fù)(restore)到初始狀態(tài)。那么setup和teardown在你的自動化代碼里就會做這些事。

其實setup/teardown也保證測試用例的獨立性,尤其在自動化測試用例編寫時,獨立性尤其重要。

剛開始做自動化測試的同學(xué)們,在設(shè)計用例時很容易犯一個錯誤——連續(xù)跑一套測試用例沒問題,但是跑單個用例,就報錯了,原來報錯的case的配置依賴之前的。

Unittest支持類級別setupclass/teardownclass和類方法級別setUp/testDown, Pytest也有類似的接口,而且支持的scope更加多。

01

函數(shù)級別之setup/teardown

我們先從簡單的函數(shù)級別開始,Pytest 提供 setup_function/teardown_function,它對測試函數(shù)有效,每個測試函數(shù)前后調(diào)用一次。

test_add.py


運行結(jié)果:

02

類級別之setup/teardown

對于類級別,Pytest 提供 setup_class/teardown_class, ?對類有效,類中前后調(diào)用一次。

test_minus.py


運行結(jié)果:

03

類測試方法之setup/teardown

對于類測試方法,Pytest提供setup_method/teardown_method和setup/teardown(這個與unittest一樣),兩者效果沒有區(qū)別,用一種即可。對類測試方法有效,每個測試類測試方法前后調(diào)用一次。這里我們舉例setup_method/teardown_method

test_minus.py


運行結(jié)果:

04

模塊級別之setup/teardown

Pytest還提供模塊級的, 接口名字是setup_module/teardown_module,模塊前后調(diào)用一次。

test_add.py


運行結(jié)果:

綜合運用

最后我們來個大亂燉,把所有用法集中在一個文件里。

test_all.py


運行結(jié)果:

如果你有使用unittest的經(jīng)驗,那么上述對你來說是非常容易接受的,但是很可惜,我們并不推薦使用它們,因為pytest提供了一個更強大的武器,我們會在下一篇中為大家介紹。


閱讀測試?yán)碚摚瑴y試管理,自動化測試和持續(xù)集成的更多文章,可以關(guān)注本人的公眾號哦,希望和能大家一起進(jìn)步。

微信公眾號是LightSoftwareTest

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容