中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現進行Python測試模塊

發布時間:2021-11-01 17:31:04 來源:億速云 閱讀:226 作者:小新 欄目:編程語言

小編給大家分享一下如何實現進行Python測試模塊,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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

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

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

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

class Category(models.Model):         id = models.AutoField('id', primary_key=True)         name = models.CharField(maxlength=50)         code = models.CharField(maxlength=50)         parentCategory = models.ForeignKey('self', 'id', null=True)         enable = models.BooleanField()                  def __str__(self):             return self.name                  class Admin:             list_display = ('id', 'name', 'code', 'parentCategory')

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

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

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

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

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

當 nose 檢查測試類的內部時,它運行與同一正則表達式匹配的方法。無須特別指定,nose 總會檢測 unittest.TestCase 的子類并作為測試使用它們。但是,它會根據自己的正則表達式決定哪些方法是測試,而不使用標準的 unittest 模式 ^test。

以上是“如何實現進行Python測試模塊”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗田县| 双牌县| 巩义市| 论坛| 塘沽区| 宕昌县| 新宁县| 滨州市| 肃北| 遂宁市| 木兰县| 绥阳县| 嵊泗县| 通海县| 邢台市| 崇阳县| 姚安县| 富蕴县| 邯郸市| 湖北省| 周口市| 广饶县| 衡南县| 渝北区| 信宜市| 兴国县| 凌源市| 二手房| 黄大仙区| 曲麻莱县| 岐山县| 湘阴县| 东城区| 廉江市| 邹城市| 临沂市| 阿巴嘎旗| 天水市| 乐至县| 台南县| 项城市|