python:unittest之跳過測試和預期失敗的用例


在利用單元測試框架執行測試用例的過程中,有時只需要執行一部分用例,或者跳過某些暫不需要執行的用例,python的unittest框架就內置這樣的功能。

前面的博客介紹了unittest框架的測試用例加載和批量執行的內容,這篇博客,介紹下在unittest框架中,如何跳過預期的測試用例。。。

 

1、unittest.skip()方法

跳過測試和預期失敗的功能,是python3.1版本開始,出現的新功能。unittest支持跳過單個測試用例甚至整個測試類。

skip()的各個方法說明如下:

方法 說明
@unittest.skip(reason)

無條件跳過被裝飾的測試方法;

reason:理由,描述為什么跳過測試用例

@unittest.skipIf(condition,reason)

如果條件為真,則繼續執行執行,否則跳過被裝飾的測試用例;

reason:理由,描述為什么跳過測試用例

@unittest.skipUnless(condition,reason) 除非條件為真,否則跳過被裝飾的測試用例;
@unittest.expectedFailure

將測試用例標記為“預期失敗”:

如果測試執行時失敗,則測試結果不計為失敗;

unittest.Skip(reason)

如引發某種定義的異常,則跳過該測試;

一般可以使用TestCase.skip()或者一個跳過裝飾器,而不是直接使用

官方文檔:https://docs.python.org/3.6/library/unittest.html

 

2、unittest.skip()實例

# coding=utf-8
import unittest import requests class DemoTest(unittest.TestCase): status = 200
    def setUp(self): self.url = 'http://www.cnblogs.com/imyalost/' @unittest.skip(u"無條件跳過該測試") def test_blog1(self): # 無條件跳過
        r1 = requests.get(self.url) @unittest.skipIf(status > 200, u"狀態碼大於200,就跳過該測試") def test_blog2(self): # 如果斷言結果為真,則繼續執行,否則跳過測試
        r2 = requests.get(self.url) status2 = r2.status_code self.assertTrue(status2 > self.status) @unittest.skipUnless(status == 404, u"狀態碼為200,則跳過") def test_blog3(self): # 除非結果為真,否則跳過該測試
        r3 = requests.get(self.url) status3 = r3.status_code self.assertTrue(status3 > self.status) @unittest.expectedFailure def test_blog4(self): # 將測試用例標記為“預期失敗”,如果測試執行時失敗,則測試結果不計為失敗
        r4 = requests.get(self.url+'/test4') status4 = r4.status_code self.assertTrue(status4 ==self.status) def tearDown(self): pass

if __name__ == '__main__': unittest.main()

代碼簡析

利用requests庫的方法,訪問我的博客首頁,並且斷言get請求的返回狀態碼,判斷是否滿足被裝飾器修飾的條件,最終執行結果如下:

 

以上就是unittest框架中關於跳過測試和預期失敗的方法示例,僅供參考,具體實踐請在實戰中自行進行。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM