unittest是python自帶的單元測試框架,儘管其主要是爲單元測試服務的,但咱們也能夠用它來作UI自動化測試和接口的自動化測試。python
unittest框架爲咱們編寫用例提供了以下的能力框架
定義用例的能力。unittest框架有一套固有套路,可讓咱們定義測試用例時更加簡單和統一單元測試
斷言的能力。unittest框架提供了一系列的斷言測試
各類執行策略。經過test suit或者擴展的方式,咱們能夠自定義用例執行的策略ui
舉例:spa
import unittest class TestCase(unittest.TestCase): def setUp(self): self.str1="abc" def testC(self): self.assertEqual("ABC",self.str1.upper()) if __name__=="__main__": unittest.main()
例子說明:code
import unittest
首先要導入unittest庫,導入以後纔可以使用對象
class TestCase(unittest.TestCase):
定義測試類,類型規範是搜字母須要大寫。全部的測試類都必須直接或間接的繼承自unittest.TestCase
類。blog
def setUp(self): self.str1="abc"
setUp(self)
方法是一個鉤子方法,在每一個測試用例執行以前都會執行一次,是作數據初始化的好地方。在上面的例子裏,咱們爲每個測試方法都定義了被測對象,self.test_string
繼承
def testC(self): self.assertEqual("ABC",self.str1.upper())
這裏定義了一個名爲testC
的測試方法,這個方法就是一個測試用例。注意,只有方法名以test開頭的方法纔是測試用例。self.assertEqual
是一個斷言方法,做用是若是第一個參數跟第二個參數相等,那麼用例經過,不然用例失敗,並在測試報告中打印出錯誤緣由。上面例子中self.str1.upper()先把abc轉化成大寫的ABC,而後合ABC對比,結果是相等的。
if __name__=="__main__": unittest.main()
上面的代碼表示,若是直接執行該python文件的話,就運行全部的測試類裏的測試用例,也就是運行全部的以test開頭的方法。
使用unittest的話須要記住下面的幾點:
unittest.TestCase
的測試類unittest.main()
是執行測試用例最簡單的方式