偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

深度剖析Python 測(cè)試框架說(shuō)明介紹

開(kāi)發(fā) 后端
在短短的前幾個(gè)月,幾乎每個(gè)使用Python 測(cè)試框架做項(xiàng)目的技術(shù)人員在編寫和運(yùn)行測(cè)試方面都采用自己熟悉的做法和常規(guī)的方式去處理。

許多的程序員會(huì)建議使用Python 測(cè)試框架,而不是手工測(cè)試是否相等的 assert 語(yǔ)句,在這種情況下測(cè)試會(huì)使用 self 而不是忽略它,對(duì)于熟悉 Python 語(yǔ)言的開(kāi)發(fā)人員,不如 Python 的操作符那么明確。

最近出現(xiàn)了行業(yè)級(jí)的 Python 測(cè)試框架,這意味著 Python 測(cè)試可以編寫得更簡(jiǎn)潔、更統(tǒng)一,能夠產(chǎn)生更好的結(jié)果報(bào)告。本文介紹比較先進(jìn)的測(cè)試框架并討論它們的基本特性。Python 測(cè)試領(lǐng)域的蠻荒時(shí)代結(jié)束了。

但是現(xiàn)在,這種混亂局面終于要結(jié)束了。社區(qū)中已經(jīng)出現(xiàn)了幾種出色的測(cè)試解決方案,它們?yōu)閿?shù)百個(gè)流行的項(xiàng)目的測(cè)試套件提供約定和通用標(biāo)準(zhǔn)。本文是 三篇系列文章 的***篇,本系列要介紹新的測(cè)試框架。在本文中,將介紹三種流行的測(cè)試框架,討論新一代工具鼓勵(lì)的簡(jiǎn)單測(cè)試風(fēng)格。

第二篇文章發(fā)現(xiàn)和選擇測(cè)試 討論更大的問(wèn)題:這些框架如何自動(dòng)地發(fā)現(xiàn)和分類項(xiàng)目的測(cè)試。***一篇文章用 Python 測(cè)試框架生成測(cè)試報(bào)告 討論這些框架為查看測(cè)試結(jié)果提供的強(qiáng)大特性。

通過(guò)學(xué)習(xí)這三種框架的通用習(xí)慣做法,您不但可以更好地理解其他程序員編寫的 Python 包,還可以為自己的應(yīng)用程序構(gòu)建優(yōu)雅、強(qiáng)大的測(cè)試套件。候選框架:三種 Python 測(cè)試框架有三種 Python 測(cè)試框架是目前使用最為廣泛的。下面按時(shí)間次序簡(jiǎn)要介紹它們:

通常,從事 Zope 項(xiàng)目的開(kāi)發(fā)人員就像是早期的拓荒者。他們需要以一種統(tǒng)一的方式在大型代碼基上發(fā)現(xiàn)和運(yùn)行測(cè)試,為此開(kāi)發(fā)了 zope.testing 包,這個(gè)包現(xiàn)在仍然得到廣泛使用。

zope.testing 包只支持 unittest 和 doctest 等傳統(tǒng) Python 測(cè)試風(fēng)格,而不支持更現(xiàn)代的框架支持的簡(jiǎn)化風(fēng)格。但是,它提供一個(gè)強(qiáng)大的分層系統(tǒng),在這種系統(tǒng)中包含測(cè)試的目錄可以依賴于通用的設(shè)置代碼,設(shè)置代碼為層(而不是每個(gè)測(cè)試)創(chuàng)建一個(gè)運(yùn)行測(cè)試所需的環(huán)境。

py.test2004 年,Holger Krekel 把他的 std 包改名為 ‘py’,因?yàn)樵瓉?lái)的名稱常常與 Python 附帶的標(biāo)準(zhǔn)庫(kù)混淆。盡管這個(gè)包包含另外幾個(gè)子包,但是現(xiàn)在***的部分只有它的 py.test 框架。

py.test 框架建立了 Python 測(cè)試的新標(biāo)準(zhǔn),目前許多開(kāi)發(fā)人員都采用這種標(biāo)準(zhǔn)。它為編寫測(cè)試提供了優(yōu)雅的符合Python 測(cè)試框架的習(xí)慣做法,讓開(kāi)發(fā)人員能夠以非常緊湊的風(fēng)格編寫測(cè)試套件。

nose 項(xiàng)目是于 2005 年發(fā)布的,也就是 py.test 改名后的一年。它是由 Jason Pellerin 編寫的,支持與 py.test 相同的測(cè)試習(xí)慣做法,但是這個(gè)包更容易安裝和維護(hù)。盡管 py.test 在某些方面有所進(jìn)步,目前也很容易安裝,但是 nose 仍然保持了易用性方面的聲譽(yù)。在 Python 大會(huì)上,常常會(huì)看到開(kāi)發(fā)人員穿著黑色 T 恤衫。

上面印著 nosetests 命令,后面是表示測(cè)試成功的點(diǎn)號(hào)。有意思的是,隨著 nose 的發(fā)展,在項(xiàng)目郵件列表上常常看到開(kāi)發(fā)人員向項(xiàng)目負(fù)責(zé)人詢問(wèn)他們的項(xiàng)目什么時(shí)候可以轉(zhuǎn)換到 nose。

在這三種框架中,nose 看起來(lái)會(huì)成為標(biāo)準(zhǔn),py.test 的用戶群比較小,但是很忠誠(chéng),zope.testing 只在基于 Zope 框架的項(xiàng)目中受歡迎。但是,這三種框架都得到積極的維護(hù),各有一些獨(dú)特的特性。建議您了解它們的特性和差異,選擇適合自己項(xiàng)目的框架。

py.test 框架接受普通的 Python 函數(shù)作為測(cè)試,而不要求把測(cè)試放在更大更重型的測(cè)試類中,這開(kāi)啟了 Python 測(cè)試的新時(shí)代。因?yàn)?nose 框架支持相同的習(xí)慣做法,所以這些模式很可能越來(lái)越流行。假設(shè)希望檢查 Python 真假值 True 和 False 是否真的

  1. # test_old.py - The old way of doing things  
  2.  
  3. import unittest  
  4.  
  5. class TruthTest(unittest.TestCase):  
  6.     def testTrue(self):  
  7.         assert True == 1  
  8.  
  9.     def testFalse(self):  
  10.         assert False == 0  
  11.  
  12. if __name__ == '__main__':  
  13. unittest.main() 

看到了嗎?這么多代碼只是為了支持兩行測(cè)試代碼!首先,代碼需要一個(gè) import 語(yǔ)句,這與要測(cè)試的代碼完全無(wú)關(guān),因?yàn)闇y(cè)試本身簡(jiǎn)單地忽略模塊,只使用內(nèi)置的 Python 值,比如 True 和 False。

另外,要?jiǎng)?chuàng)建一個(gè)類,但是它不支持或增強(qiáng)測(cè)試,因?yàn)闇y(cè)試實(shí)際上沒(méi)有使用它們的 self 參數(shù)做任何事情。***,需要兩行固定不變的代碼,這樣才能從命令行運(yùn)行這個(gè)測(cè)試。

【編輯推薦】

  1. 有關(guān)Python系統(tǒng)文件進(jìn)行介紹指導(dǎo)
  2. 如何正確的使用Python函數(shù)
  3. 對(duì)Python 構(gòu)建工具進(jìn)行詳細(xì)介紹分析
  4. PythonAndroid淺析Python優(yōu)勢(shì)所在
  5. 如何使用Python模塊解析配置文件?
責(zé)任編輯:chenqingxiang 來(lái)源: 機(jī)械工業(yè)出版社
相關(guān)推薦

2010-02-26 17:44:40

Python測(cè)試框架

2010-02-22 13:53:22

Python 中文亂碼

2010-02-03 11:26:28

2010-03-03 13:56:24

2010-02-07 14:29:10

Android SDK

2010-02-04 14:01:44

Android應(yīng)用

2009-12-07 18:43:29

WCF框架

2010-02-05 15:33:29

Android JDK

2010-01-13 10:16:42

C++軟件

2010-02-24 17:58:28

Python 測(cè)試框架

2010-02-01 13:34:59

Python 腳本

2010-02-02 15:25:35

Python語(yǔ)法

2010-02-03 16:56:24

Python包

2010-03-01 14:50:06

Python 工具

2010-03-01 18:33:30

2010-02-07 15:42:46

Android單元測(cè)試

2010-01-27 09:31:39

C++Test測(cè)試

2010-01-11 17:43:23

C++程序設(shè)計(jì)

2010-02-02 13:22:06

Python面向?qū)ο?/a>

2010-02-03 09:35:20

Python函數(shù)編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)