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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
輕輕松松實現(xiàn)進(jìn)行Python 測試模塊

為了更容易實現(xiàn)這種Python 測試模塊,避免多次復(fù)制并粘貼測試函數(shù)以及設(shè)置惟一的名稱,py.test 和 nose 都支持衍生測試,它實際上是一個迭代器,然后使用它的 yield 語句并提供調(diào)用參數(shù)。

江漢網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)

但是,之后它們都會遇到相同的情況:它們必須檢查模塊列表,尋找開發(fā)人員希望作為測試運行的函數(shù)和類。正如在前一篇文章中看到的,py.test 往往選擇單一標(biāo)準(zhǔn),期望使用它的所有項目都遵守這一標(biāo)準(zhǔn);而 nose 允許更豐富的定制,但是這會犧牲行為的可預(yù)測性。

對于測試發(fā)現(xiàn),也是如此:py.test 按照固定、不可變且可預(yù)測的規(guī)則檢測測試模塊中的測試,而 nose 采用靈活的可定制的規(guī)則。如果項目使用 nose 執(zhí)行測試,就先必須閱讀項目的 Python 測試模塊,了解 nose 是采用通常的測試檢測規(guī)則,還是采用這個項目特有的規(guī)則。

下面是 py.test 使用的過程:

 
 
 
  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')   

當(dāng) py.test 檢查 Python 測試模塊的內(nèi)部時,它收集名稱以 test_ 開頭的每個函數(shù)和名稱以 Test 開頭的每個類。無論類是否繼承自 unittest.TestCase,它都會收集它們。測試函數(shù)直接運行,但是對于測試類,還必須搜索方法。類實例化之后,作為測試運行名稱以 test_ 開頭的所有方法。

如果測試類繼承自標(biāo)準(zhǔn)的 Python unittest.TestCase 類,py.test 框架會表現(xiàn)出一種古怪的行為:如果類不包含 runTest() 方法,那么即使它包含幾個 test_ 方法,py.test 也會拋出異常并失敗。但是,如果存在 runTest() 方法,py.test 會忽略它;這個方法必須存在,py.test 才能接受這個類,但是不會運行這個方法,因為它的名稱不是以 test_ 開頭的。

為了糾正這種行為,可以在項目的 conttest.py 文件中或使用 -p 命令行選項激活框架的 unittest 插件:這會讓 py.test 對其行為做三個更改。首先,不再只檢測名稱以 Test 開頭的類,還會檢測繼承自 unittest.TestCase 的其他類。

第二,對于沒有提供 runTest() 方法的 TestCase 子類,py.test 不再報告異常。第三,在類包含的測試之前和之后,以標(biāo)準(zhǔn)方式正確地運行 TestCase 子類中的所有 setUp() 和 tearDown() 方法。

盡管 nose 提供更強的定制能力,但是比較簡單的測試發(fā)現(xiàn)過程如下:當(dāng) nose 檢查 Python 測試模塊的內(nèi)部時,它采用在選擇測試模塊時使用的正則表達(dá)式。收集與這個正則表達(dá)式匹配的函數(shù)和類。(在默認(rèn)情況下,尋找包含單詞 Test 或 test 的名稱,但是可以通過命令行或配置文件提供不同的正則表達(dá)式)。

當(dāng) nose 檢查測試類的內(nèi)部時,它運行與同一正則表達(dá)式匹配的方法。無須特別指定,nose 總會檢測 unittest.TestCase 的子類并作為測試使用它們。但是,它會根據(jù)自己的正則表達(dá)式?jīng)Q定哪些方法是測試,而不使用標(biāo)準(zhǔn)的 unittest 模式 ^test。

【編輯推薦】

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

網(wǎng)頁題目:輕輕松松實現(xiàn)進(jìn)行Python 測試模塊
鏈接地址:http://www.5511xx.com/article/dpejisg.html