1. 程式人生 > >unittest簡單案例

unittest簡單案例

一、前言

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.瀏覽器開啟,如圖

 

以上,一個簡單的單元測試指令碼實現