python中的測試框架

      網(wǎng)友投稿 927 2025-04-03

      一、測試常用規(guī)則


      一個(gè)測試單元必須關(guān)注一個(gè)很小的功能函數(shù),證明它是正確的;

      每個(gè)測試單元必須是完全獨(dú)立的,必須能單獨(dú)運(yùn)行。這樣意味著每一個(gè)測試方法必須重新加載數(shù)據(jù),執(zhí)行完畢后做一些清理工作。通常通過setUp()和setDown()方法處理;

      編寫執(zhí)行快速的測試代碼。在某些情況下,測試需要加載復(fù)雜的數(shù)據(jù)結(jié)構(gòu),而且每次執(zhí)行的時(shí)候都要重新加載,這個(gè)時(shí)候測試執(zhí)行會(huì)很慢。因此,在這種情況下,可以將這種測試放置一個(gè)后臺(tái)的任務(wù)中。

      在編寫代碼前執(zhí)行完整的測試,而且在編寫代碼后再重新執(zhí)行一次。這樣能保證你后來編寫的代碼不會(huì)破壞任何事情;

      在提交代碼前執(zhí)行完整的測試;

      如果在開發(fā)期間被打斷了工作,寫一個(gè)打斷的單元測試,關(guān)于你下一步將要開發(fā)的。當(dāng)你回來工作時(shí),你能知道上一步開發(fā)到的指針;

      單元測試函數(shù)使用長的而且具有描述性的名字。在正式執(zhí)行代碼中,可能使用square()或sqr()取名,但是在測試函數(shù)中,你必須取像test_square_of_number_2()、test_square_negativer_number()這些名字,這些名字描述更加清楚;

      測試代碼必須具有可讀性;

      單元測試對新進(jìn)的開發(fā)人員來說是工作指南。

      二、python常用的測試框架

      1. unittest

      unittest是Python內(nèi)置的標(biāo)準(zhǔn)類庫

      unittest 和 JUnit類似,可以說是python的標(biāo)準(zhǔn)單元測試框架,所以有時(shí)也被人稱為 PyUnit。它使用起來和xUnit 家族其他成員類似。 用的人也比較多。兼容 python2 以及python3 。

      2、unittest2

      unittest2 可以說是一個(gè)針對 unittest測試框架新特性的補(bǔ)丁。它很大程度上和unittest都類似。然后還添加了一些unittest沒有的方法。

      3、pytest

      py.test是unittest的替代工具。

      盡管它是一個(gè)功能豐富、靈活的測試框架,但是它的語法很簡單。創(chuàng)建一個(gè)單元測試就像編寫一個(gè)模塊一樣。相比unittest,實(shí)現(xiàn)相同的測試功能,py.test做的事情更少。

      pytest 直接可以通過 @pytest.mark.parametrize 進(jìn)行參數(shù)化,而unittest 則需要借助DDT。

      4、nose

      Nose是對unittest的擴(kuò)展,使得python的測試更加簡單。nose自動(dòng)發(fā)現(xiàn)測試代碼并執(zhí)行,nose提供了大量的插件,比如測試輸出的xUnitcompatible,覆蓋報(bào)表等等。

      基于Python的測試驅(qū)動(dòng)開發(fā)實(shí)戰(zhàn) 也有nose的用法:?http://python.jobbole.com/81305/

      還有一個(gè)特定就是,nose可以采用 @with_setup() 來定義方法的setup和teardown。

      5、doctest

      doctest模塊會(huì)搜索那些看起來像交互式會(huì)話的 Python 代碼片段,然后嘗試執(zhí)行并驗(yàn)證結(jié)果。

      6、tox

      python中的測試框架

      最大的特色,是自動(dòng)最測試環(huán)境的管理以及使用多個(gè)解析器配置進(jìn)行測試。

      tox的詳細(xì)文檔:?http://testrun.org/tox/latest/

      7、mock

      unittest.mock是用來測試python的庫。

      在python3.3版本以后,這個(gè)是一個(gè)標(biāo)準(zhǔn)庫。 對老版本來說,使用pip install mock 進(jìn)行安裝。

      mock的精髓在于,你可以使用模擬的對象來替代你的系統(tǒng)的一部分,然后驗(yàn)證后續(xù)的執(zhí)行是否正確。

      mock的詳細(xì)文檔:http://www.voidspace.org.uk/python/mock/

      Python

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:專業(yè)智能家居管理系統(tǒng)-提高生活品質(zhì)的關(guān)鍵
      下一篇:excel2003多條件求和的教程全解
      相關(guān)文章
      亚洲色在线无码国产精品不卡| 久久亚洲精品人成综合网| 亚洲精品在线电影| 亚洲AV中文无码乱人伦下载| 国产亚洲大尺度无码无码专线 | 亚洲综合久久成人69| 亚洲国产天堂久久综合网站| 久久综合图区亚洲综合图区| 亚洲av一综合av一区| 亚洲AV永久青草无码精品| 久久亚洲综合色一区二区三区| 亚洲午夜国产精品无码老牛影视 | 亚洲乱人伦精品图片| 精品国产成人亚洲午夜福利| 亚洲一线产区二线产区区| 亚洲综合av一区二区三区| 亚洲AV永久无码精品一福利| 亚洲精品无码成人片久久不卡| 亚洲女子高潮不断爆白浆| 亚洲av日韩综合一区久热| 在线播放亚洲精品| 亚洲国产一级在线观看| 亚洲成a人片在线观看老师| 亚洲日本一区二区三区在线不卡| 国产日产亚洲系列最新| 亚洲线精品一区二区三区 | 亚洲va久久久噜噜噜久久| 亚洲成熟xxxxx电影| 亚洲精品在线免费观看视频| 亚洲一区在线免费观看| 亚洲色欲色欱wwW在线| 亚洲成av人片天堂网老年人| 自拍偷自拍亚洲精品被多人伦好爽| 国产亚洲一区二区在线观看| 久久亚洲AV无码精品色午夜麻| 麻豆亚洲av熟女国产一区二| 亚洲中文久久精品无码1| 亚洲欧美日韩中文无线码| 五月婷婷亚洲综合| 亚洲一区二区三区在线观看精品中文 | 国产精品亚洲一区二区麻豆|