Pytest是Python的一個(gè)第三方單元測(cè)試庫(kù),它是讓單元測(cè)試變得更容易,并且也能擴(kuò)展到支持應(yīng)用層面復(fù)雜的功能測(cè)試。
不過(guò)Pytest不是Python默認(rèn)的package,使用的時(shí)候要注意需要手動(dòng)安裝。
相較于其它Python單元測(cè)試框架來(lái)說(shuō)Pytest可以提供更豐富功能,包括assert重寫(xiě)、第三方插件,并且可以自定義擴(kuò)展,比較好用的如Pytest-selenium(集成selenium)、Pytest-html(完美html測(cè)試報(bào)告生成)、Pytest-rerunfailures(失敗case重復(fù)執(zhí)行)、Pytest-xdist(多CPU分發(fā))等。
同時(shí),Pytest支持參數(shù)化,可以細(xì)粒度地控制要測(cè)試的測(cè)試用例,它還擁有其他測(cè)試工具無(wú)法比擬的fixture模型,可以自動(dòng)找到測(cè)試用例執(zhí)行,并匯報(bào)測(cè)試結(jié)果。
再者,Pytest擁有豐富的基礎(chǔ)庫(kù),可以大幅度提高用戶編寫(xiě)測(cè)試用例的效率,可以很方便地與其他工具一起使用。
更重要的是,編寫(xiě)Pytest測(cè)試樣例非常簡(jiǎn)單,只需要按照下面的規(guī)則:測(cè)試文件以test_開(kāi)頭(以_test結(jié)尾也可以)、測(cè)試類以Test開(kāi)頭并且不能帶有init方法、測(cè)試函數(shù)以test_開(kāi)頭、斷言使用基本的assert即可。
正因?yàn)榇?,現(xiàn)在使用Pytest的人也原來(lái)越多。
學(xué)習(xí)建議
綜上對(duì)比和歸納總結(jié),Unittest做為一個(gè)Python標(biāo)準(zhǔn)庫(kù),和Python版本綁定,非常穩(wěn)定,不用擔(dān)心兼容性的問(wèn)題。
如果要學(xué)習(xí)一個(gè)單元測(cè)試框架,建議從Unittest開(kāi)始,因?yàn)槟憧梢越佑|到loader、suite、runner這樣的組件,對(duì)理解測(cè)試框架更有幫助,學(xué)習(xí)好Unittest以后,再學(xué)習(xí)Nose2或者Pytest這樣更高級(jí)的框架,能有效提升編程效率。
很多同學(xué)在網(wǎng)上看到一些說(shuō)Unittest過(guò)時(shí)或Unittest不高級(jí)的言論就開(kāi)始批判,顯然是不對(duì)的。Unittest是其他Python單元測(cè)試框架的基礎(chǔ),沒(méi)學(xué)好Unittest,其他的框架勢(shì)必也學(xué)不好。
以上內(nèi)容為大家介紹了python中的第三方單元測(cè)試庫(kù),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.dietsnews.net/