'''
题目要求
1:自己写一个工具类,完成数学的加减乘除以及平方积操作
2:对每个方法写2个用例
3:针对测试用例选用不同的方法去执行,然后生成测试报告
'''
'''
实现:
  3个文件:
work_20181127_mathtool.py : 定义计算方法
work_20181127_testcase.py : 定义测试用例
work_20181127_testrun.py  : 定义测试集,生成测试报告
'''
代码:
work_20181127_mathtool.py:
# -*- coding:utf-8 -*-
'''
@project: jiaxy
@author: Jimmy
@file: work_20181127_mathtool.py
@ide: PyCharm Community Edition
@time: 2018-11-27 14:17
@blog: https://www.cnblogs.com/gotesting/
'''
class MathTool:
    # 加法
    def add(a,b):
        res = a + b
        print('{0} + {1} = {2}'.format(a,b,res))
        return res
    # 减法
    def pop(a,b):
        res = a - b
        print('{0} - {1} = {2}'.format(a,b,res))
        return res
    # 乘法
    def mul(a,b):
        res = a * b
        print('{0} * {1} = {2}'.format(a,b,res))
        return res
    # 除法
    def div(a,b):
        res = a / b
        print('{0} / {1} = {2}'.format(a,b,res))
        return res
    # 平方积
    def square(a,b):
        res = (pow(a,2)) * (pow(b,2))
        print('{0} 与 {1} 的平方积 = {2}'.format(a,b,res))
        return res
work_20181127_testcase.py:
# -*- coding:utf-8 -*-
'''
@project: jiaxy
@author: Jimmy
@file: work_20181127_testcase.py
@ide: PyCharm Community Edition
@time: 2018-11-27 14:30
@blog: https://www.cnblogs.com/gotesting/
'''
import unittest
from work_20181127_mathtool import MathTool
class TestMT(unittest.TestCase):
    def setUp(self):
        print('开始对MathTool进行运算测试!')
    def tearDown(self):
        print('测试完成!')
    def test_add_001(self):
        res = MathTool.add(10,5)
        expect = 15
        try:
            self.assertEquals(expect,res)
            print('测试通过!')
        except Exception as e:
            raise e
    def test_add_002(self):
        res = MathTool.add(3,4)
        expect = 6
        try:
            self.assertEquals(expect,res)
        except Exception as e:
            raise e
    def test_pop_001(self):
        res = MathTool.pop(6,2)
        expect = 4
        try:
            self.assertEquals(expect,res)
        except Exception as e:
            raise e
    def test_pop_002(self):
        res = MathTool.pop(10,4)
        expect = 5
        try:
            self.assertEquals(expect,res)
        except Exception as e:
            raise e
    def test_mul_001(self):
        res = MathTool.mul(2,2)
        expect = 4
        try:
            self.assertEquals(expect,res)
        except Exception as e:
            raise e
    def test_mul_002(self):
        res = MathTool.mul(3,4)
        expect = 11
        try:
            self.assertEquals(expect,res)
        except Exception as e:
            raise e
    def test_div_001(self):
        res = MathTool.div(20,5)
        expect = 4
        try:
            self.assertEquals(expect,res)
        except Exception as e:
            raise e
    def test_div_002(self):
        res = MathTool.div(10,5)
        expect = 3
        try:
            self.assertEquals(expect,res)
        except Exception as e:
            raise e
    def test_square_001(self):
        res = MathTool.square(2,3)
        expect = 36
        try:
            self.assertEquals(expect,res)
        except Exception as e:
            raise e
    def test_square_002(self):
        res = MathTool.square(2,4)
        expect = 63
        try:
            self.assertEquals(expect,res)
        except Exception as e:
            raise e
work_20181127_testrun.py:
# -*- coding:utf-8 -*-
'''
@project: jiaxy
@author: Jimmy
@file: work_20181127_testrun.py
@ide: PyCharm Community Edition
@time: 2018-11-27 14:49
@blog: https://www.cnblogs.com/gotesting/
'''
import unittest
import work_20181127_testcase
from work_20181127_testcase import TestMT
import HTMLTestRunner
def run_test_01():
    suite = unittest.TestSuite()
    loader = unittest.TestLoader()
    suite.addTest(loader.loadTestsFromModule(work_20181127_testcase))
    with open('test_result.html','wb+') as file:
        runner = HTMLTestRunner.HTMLTestRunner(
            stream = file,
            verbosity = 2
        )
        runner.run(suite)
def run_test_02():
    suite = unittest.TestSuite()
    loader = unittest.TestLoader()
    suite.addTest(loader.loadTestsFromTestCase(TestMT))
    with open('test_result.html','wb+') as file:
        runner = HTMLTestRunner.HTMLTestRunner(
            stream = file,
            verbosity = 2
        )
        runner.run(suite)
def run_test_03():
    suite = unittest.TestSuite()
    suite.addTest(TestMT('test_add_001'))
    suite.addTest(TestMT('test_add_002'))
    suite.addTest(TestMT('test_pop_001'))
    suite.addTest(TestMT('test_pop_002'))
    suite.addTest(TestMT('test_mul_001'))
    suite.addTest(TestMT('test_mul_002'))
    suite.addTest(TestMT('test_div_001'))
    suite.addTest(TestMT('test_div_002'))
    suite.addTest(TestMT('test_square_001'))
    suite.addTest(TestMT('test_square_002'))
    with open('test_result.html','wb+') as file:
        runner = HTMLTestRunner.HTMLTestRunner(
            stream = file,
            verbosity = 2
        )
        runner.run(suite)
if __name__ == '__main__':
    run_test_01()
    # run_test_02()
    # run_test_03()
测试报告:
![]()