unittest簡單案例
阿新 • • 發佈:2018-12-19
一、前言
1.編寫一個類實現加減乘除的功能
2.編寫測試用例,每個類中的功能(比如加法)需要編寫2個以上測試用例
3.最後新增一個run_main.py執行用例,生成報告
4.本篇暫不考慮引數化,主要實現批量執行測試用例的功能
二、程式碼部分
1.新建專案unittest_demo
2.新建mathFunc.py實現簡單計算功能
#coding:utf-8 class MathFunc(): # 加法 def add_func(self,a,b): return a+b # 減法 def minus_func(self,a,b): return a-b # 乘法 def multi_func(self,a,b): return a*b # 除法 def divide_func(self,a,b): return a/b
3.新建一個case目錄,存放測試用例(共10條用例)
(1)test_add_func.py 測試加法用例
#coding:utf-8 from mathFunc import MathFunc import unittest class TestAddFunc(unittest.TestCase): @classmethod def setUpClass(cls): print("加法測試開始...") @classmethod def tearDownClass(cls): print("加法測試結束...") def test_add_func001(self): res = MathFunc().add_func(10,20) self.assertEqual(res,30) def test_add_func002(self): res = MathFunc().add_func(-10,-20) self.assertEqual(res,-30) def test_add_func003(self): res = MathFunc().add_func(0,10) self.assertEqual(res,10) def test_add_func004(self): res = MathFunc().add_func(2.5,3.7) self.assertEqual(res,6.2) if __name__ == '__main__': unittest.main()
(2)test_divide_func.py 測試除法用例
#coding:utf-8 from mathFunc import MathFunc import unittest class TestDivideFunc(unittest.TestCase): @classmethod def setUpClass(cls): print("除法測試開始...") @classmethod def tearDownClass(cls): print("除法測試結束") def test_divide_func001(self): res = MathFunc().divide_func(20,5) self.assertEqual(res,4) def test_divide_fun002(self): res = MathFunc().divide_func(-20,-10) self.assertEqual(res,2) if __name__ == '__main__': unittest.main()
(3)test_minus_func.py 測試減法用例
#coding:utf-8 from mathFunc import MathFunc import unittest class TestMinusFunc(unittest.TestCase): @classmethod def setUpClass(cls): print("減法測試開始...") @classmethod def tearDownClass(cls): print("減法測試結束...") def test_minus_func001(self): res = MathFunc().minus_func(20,10) self.assertEqual(res,10) def test_minus_func002(self): res = MathFunc().minus_func(-10,-20) self.assertEqual(res,10) if __name__ == '__main__': unittest.main()
(4)test_multi_func.py 測試乘法用例
#coding:utf-8 from mathFunc import MathFunc import unittest class TestMultiFunc(unittest.TestCase): @classmethod def setUpClass(cls): print("乘法測試開始...") @classmethod def tearDownClass(cls): print("乘法測試結束...") def test_multi_func001(self): res = MathFunc().multi_func(10,5) self.assertEqual(res,50) def test_multi_func002(self): res = MathFunc().multi_func(10,0) self.assertEqual(res,0) if __name__ == '__main__': unittest.main()
4.在專案下新增run_main.py 執行測試用例
#coding:utf-8 import unittest import HTMLTestRunnerCN_test if __name__ == '__main__': suite = unittest.TestLoader().discover("case") with open("HTMLTestReport.html","wb") as f: runner = HTMLTestRunnerCN_test.HTMLTestRunner(stream=f, title="MathFunc Test Report", description="Test Result", verbosity=2 ) runner.run(suite)
三、測試結果
1.當前目錄下會生成一個html檔案(測試報告)
2.瀏覽器開啟,如圖
以上,一個簡單的單元測試指令碼實現