W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
?unittest
?庫提供了 ?@skipIf
? 和 ?@skipUnless
? 裝飾器,允許你跳過測試,如果你事先知道這些測試在某些條件下會失敗。
例如,如果你的測試需要一個特定的可選庫才能成功,你可以用 ?@skipIf
? 來裝飾測試用例。然后,測試運行器將報告測試沒有被執(zhí)行以及原因,而不是測試失敗或完全省略測試。
為了補充這些測試跳過行為,Django 提供了兩個額外的跳過裝飾器。這些裝飾器不是測試一個通用的布爾值,而是檢查數(shù)據(jù)庫的能力,如果數(shù)據(jù)庫不支持一個特定的命名特性,則跳過測試。
裝飾器使用一個字符串標識符來描述數(shù)據(jù)庫特征。這個字符串對應(yīng)于數(shù)據(jù)庫連接特征類的屬性。
如果支持某個命名的數(shù)據(jù)庫功能,則跳過裝飾測試或 ?TestCase
?
例如,如果數(shù)據(jù)庫支持事務(wù),下面的測試將不會被執(zhí)行(例如,在PostgreSQL 下,它將 不 會運行,但在 MySQL 的 MyISAM 表下卻可以):
class MyTests(TestCase):
@skipIfDBFeature('supports_transactions')
def test_transaction_behavior(self):
# ... conditional test code
pass
如果不支持某個命名的數(shù)據(jù)庫功能,則跳過裝飾測試或 ?TestCase
?
例如,接下來的測試僅在支持事務(wù)的數(shù)據(jù)庫下執(zhí)行(如:可以是PostgreSQL,但不可以是使用MyISAM數(shù)據(jù)庫引擎的MySQL):
class MyTests(TestCase):
@skipUnlessDBFeature('supports_transactions')
def test_transaction_behavior(self):
# ... conditional test code
pass
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: