日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
漫談Python測試框架問題

對于每一個(gè)IT行業(yè)的從業(yè)人員,無論是開發(fā)人員、項(xiàng)目經(jīng)理、還是測試人員,掌握了Python 測試框架這們語言會使我們的編程工作更簡單和更輕松,下面進(jìn)行學(xué)習(xí)研究。

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。成都創(chuàng)新互聯(lián)專業(yè)提供網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站制作(企業(yè)站、響應(yīng)式網(wǎng)站開發(fā)、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!

本文討論三種***的測試框架如何識別和收集測試,以及它們?nèi)绾沃С志帉懲暾臏y試層,共享共同的 setup 和 teardown 代碼。這三篇系列文章 的 ***篇文章 討論了標(biāo)準(zhǔn)測試框架(比如 zope.testing、py.test 和 nose)給 Python 測試領(lǐng)域帶來的革命性影響。

這些框架支持更簡單的測試方法,讓項(xiàng)目不再需要為運(yùn)行測試編寫和維護(hù)專門的代碼。第二篇文章 討論了這些自動化解決方案如何搜索 Python 包以識別可能包含測試的模塊。本文討論下一步,介紹框架在找到測試模塊之后如何發(fā)現(xiàn)其中的待測試項(xiàng)。還討論一些細(xì)節(jié),比如這三種框架對共同的 setup 和 teardown 代碼的支持情況。

對于 zope.testing 框架,您會發(fā)現(xiàn) Zope 社區(qū)有一些有意思的現(xiàn)象。Zope 社區(qū)并不為解決每個(gè)問題構(gòu)建大型工具。而是構(gòu)建小型的功能有限的工具,這些工具能夠連接在一起。目前,zope.testing 模塊本身實(shí)際上根本沒有提供檢測測試的機(jī)制!

相反,zope.testing 讓程序員自己尋找每個(gè)模塊中需要運(yùn)行的測試并把它們集中在一個(gè)列表中。它在每個(gè)測試模塊中只尋找一個(gè)東西:test_suite() 函數(shù),這個(gè)函數(shù)應(yīng)該返回標(biāo)準(zhǔn) unittest.TestSuite 類的實(shí)例,其中包含模塊定義的測試。

使用 zope.testing 的一些程序員在 test_suite() 函數(shù)中手工地創(chuàng)建和維護(hù)測試列表。其他程序員通過編寫定制代碼發(fā)現(xiàn)已經(jīng)定義的可用測試。但是,最有意思的方法是使用另一個(gè) Zope 包 z3c.testsetup,它能夠像其他現(xiàn)代 Python 測試框架一樣自動地發(fā)現(xiàn)包中的測試。

這一現(xiàn)象再次說明 Zope 程序員傾向于編寫小型代碼塊,然后使用它們構(gòu)建框架,而不是編寫大型的全面解決方案。z3c.testsetup 包不包含可以選擇測試的命令行界面,也不包含可以顯示測試結(jié)果的輸出模塊;它完全依靠 zope.testing 實(shí)現(xiàn)這些功能。

實(shí)際上,z3c.testsetup 用戶一般不使用 zope.testing 的測試模塊發(fā)現(xiàn)功能。相反,他們繞開 zope.testing 的算法。按照它的默認(rèn)行為只尋找名為 test.py 的模塊,然后在整個(gè)源代碼樹中只提供一個(gè)采用此名稱的模塊。在最簡單的情況下,他們的 test.py 像下面這樣:

 
 
 
  1. class Category(models.Model):     
  2.     id = models.AutoField('id', primary_key=True)     
  3.     name = models.CharField(maxlength=50)     
  4.     code = models.CharField(maxlength=50)     
  5.     parentCategory = models.ForeignKey('self', 'id', null=True)     
  6.     enable = models.BooleanField()     
  7.          
  8.     def __str__(self):     
  9.         return self.name     
  10.          
  11.     class Admin:     
  12.         list_display = ('id', 'name', 'code', 'parentCategory')   

這完全不通過 zope.testing 執(zhí)行測試發(fā)現(xiàn)任務(wù),而是依靠Python 測試框架本身提供的更強(qiáng)大的發(fā)現(xiàn)機(jī)制。可以向 register_all_tests() 函數(shù)提供幾個(gè)配置選項(xiàng)。詳細(xì)信息請參見 z3c.testsetup 文檔,這里只需要介紹它的基本行為。與本文討論的其他框架不同,z3c.testsetup 在默認(rèn)情況下不關(guān)心包中每個(gè) Python 模塊的名稱,而是關(guān)注它的內(nèi)容。

它檢查所有模塊以及包中的所有 .txt 或 .rst 文件,選擇文本中指定了 :Test-Layer: 的文件。然后,它組合模塊中的所有 TestCase 和文本文件中的所有 doctest 部分,形成測試套件。

***注意,Zope 測試框架只支持 UnitTest 實(shí)例或 doctest。正如本系列的***篇文章中討論的,更現(xiàn)代的 Python 測試框架還支持一般的 Python 函數(shù)作為有效測試。這需要不同的測試檢測算法,在下面討論的框架中就會看到。

【編輯推薦】

  1. 漫談Python 源代碼編制技巧
  2. 簡單易于操作的Python 工具詳解
  3. 有關(guān)Python應(yīng)用領(lǐng)域進(jìn)行說明介紹
  4. PythonAndroid面向?qū)ο蟮木幊獭?font>Python應(yīng)用程序
  5. 如何使用Python模塊解析配置文件 ?

網(wǎng)頁題目:漫談Python測試框架問題
本文網(wǎng)址:http://www.5511xx.com/article/cccioss.html