python - unitest - 实战题目

'''
题目要求

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()


测试报告:

 




posted @ 2018-11-27 15:37  JiaxyGogogo  阅读(447)  评论(0编辑  收藏  举报