自動化學習01-單元測試unittest模塊

例子:
import unittest
import random

class MyTest(unittest.TestCase):
def setUp(self):
self.num = range(10)

def testramdow(self):
    self.assertTrue(random.choice(self.num)in self.num)

def test1(self):
    num1 = random.choice(self.num)
    nun2 = random.choice(self.num)
    self.assertEqual(num1,nun2)
def test2(self):
    num1 =random.choice(self.num)
    self.assertTrue(num1<10)

if name == ‘main’:
suite = unittest.TestSuite()
suite.addTest(MyTest(“test1”))
suite.addTest(MyTest(“test2”))
suite.addTest(MyTest(“testramdow”))
unittest.TextTestRunner(verbosity=3).run(suite)

  1. 首先是導入unittest 模塊 沒有自行去pip install unittest
  2. MyTest類繼承自unittest.TestCase
  3. setup用來初始化數據,只會運行一次
  4. 每一個以test開頭的方法,都會爲其構建TestCase對象,使用unittest.main方法執行函數;所以再寫測試用例的時候一定是以test開頭
  5. TestSuite’:組織測試用例的實例,支持測試用例的添加和刪除,最終將傳遞給testRunner進行測試執行
  6. self.assertTrue(表達式, failedinfo) # 斷言value爲真
  7. self.assertFalse(表達式, failedinfo) # 斷言value爲假
  8. self.assertEqual(value1, value2, failedinfo) # 斷言value1 == value2
  9. unittest.TextTestRunner(verbosity=2).run(suite)運行用例,TextTestRunner類將用例執行的結果以text形式輸出,verbosity默認值爲1,不限制完整結果,即單個用例成功輸出’.’,失敗輸出’F’,錯誤輸出’E’;verbosity=2將輸出完整的信息,verbosity=2是指測試結果的輸出的詳細程度,有0-6級,具體代碼實現可看Python27\Lib\unittest\runner.py源代碼

1.unittest.suite(),創建一個測試套件,suite.addTest()添加單個用例到測試套件中,需要把每一個要執行的用例都添加一遍,unittest.TextTestRunner().run()執行測試測試套件的所有用例;

我們也可以用addTests()方法添加多個測試用例,用makesuite(),搜索所有測試用例添加到測試套件,如下:只是main()方法下面的方法修改下即可
#定義一個測試套件
suite=unittest.TestSuite()
#添加測試用例
#添加單個測試用例
suite.addTests(unittest.makeSuite(MyTest))
unittest.TextTestRunner(verbosity=2).run(suite)

發佈了18 篇原創文章 · 獲贊 20 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章