'''
题目要求 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() 测试报告:

python - unitest - 实战题目的更多相关文章

  1. 向大家介绍我的新书:《基于股票大数据分析的Python入门实战》

    我在公司里做了一段时间Python数据分析和机器学习的工作后,就尝试着写一本Python数据分析方面的书.正好去年有段时间股票题材比较火,就在清华出版社夏老师指导下构思了这本书.在这段特殊时期内,夏老 ...

  2. Python 机器学习实战 —— 监督学习(上)

    前言 近年来AI人工智能成为社会发展趋势,在IT行业引起一波热潮,有关机器学习.深度学习.神经网络等文章多不胜数.从智能家居.自动驾驶.无人机.智能机器人到人造卫星.安防军备,无论是国家级军事设备还是 ...

  3. 【图文详解】python爬虫实战——5分钟做个图片自动下载器

    python爬虫实战——图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识,(没看的先去看!!)大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap sho ...

  4. Python开发实战教程(8)-向网页提交获取数据

    来这里找志同道合的小伙伴!↑↑↑ Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知 ...

  5. Python爬虫实战(4):豆瓣小组话题数据采集—动态网页

    1, 引言 注释:上一篇<Python爬虫实战(3):安居客房产经纪人信息采集>,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功.本篇是针对动态网页的数据 ...

  6. Python爬虫实战(2):爬取京东商品列表

    1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反 ...

  7. Spring MVC 程序首页的设置 - 一号门-程序员的工作,程序员的生活(java,python,delphi实战)

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  8. python机器学习实战(一)

    python机器学习实战(一) 版权声明:本文为博主原创文章,转载请指明转载地址 www.cnblogs.com/fydeblog/p/7140974.html  前言 这篇notebook是关于机器 ...

  9. python机器学习实战(二)

    python机器学习实战(二) 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7159775.html 前言 这篇noteboo ...

随机推荐

  1. (2017.10.10) 我对 JavaScript 历史的认识

    关于 JavaScript 的历史和来由相信学过 JavaScript 的小伙伴都能说出一二.我看过一些入门书籍第一章或者前言部分都有介绍,但是一直没捋清这段历史.今天通过两个问题,来加深我对 Jav ...

  2. Vuforia切换回识别场景后黑屏解决

    使用Vuforia SDK开发时,如果从其他非识别场景切换回识别场景,可能会出现黑屏问题. 解决方法是在切换到其他场景时,先将当前场景的Tracker信息全部Stop.代码如下: IEnumerato ...

  3. react中constructor和super()以及super(props)的区别。

    react中这两个API出镜率超级高,但是一直不太懂这到底是干嘛的,有什么用:今天整理一下,方便自己查看同时方便大家. 1.constructor( )-----super( )的基本含义 const ...

  4. Python3+Selenium3+webdriver学习笔记7(选择多链接的结果、iframe、下拉框)

    #!/usr/bin/env python# -*- coding:utf-8 -*- from selenium import webdriverfrom selenium.webdriver.co ...

  5. 给广大码农分享福利:一个业界良心的github仓库,中文计算机资料

    我今天查资料时无意发现的,https://github.com/CyC2018/CS-Notes 这个仓库包含了下列几个维度的计算机学习资料: 深受国内程序员喜爱,已经有超过3万多star了. 1. ...

  6. VR/AR软件—Mirra测试(截至2017/11/13),使AR/VR创作更加便捷

    Mirra(截至2017/11/13)https://www.mirra.co/ 1.主要特点: 目前仅支持VR,不支持AR 在浏览器(仅支持chrome,firefox)上进行创作,但目前不能直接在 ...

  7. line-block,white-space,overflow

    line-block:设置行间的距离(行高),只能控制块级元素,span这样的行内元素无法控制,并且当块级元素 中包含span的时候设置line-block会使span的自适应高度小于块级元素的高度, ...

  8. 3. Netbackup 7.6客户端的安装(windows/linux)

    1 客户端的安装 1.1 Windows客户端安装 1.1.1 客户端hosts修改 windows xp/2003/vista/2008/7/8用户HOSTS文件是在“c:\windows\syst ...

  9. VMware vSphere6.0 服务器虚拟化部署安装图解

    一 VMware vSphere部署的前期规划要点 1 vSphere的优点 (略) 2 如何利用现在的设备架构虚拟化环境 在虚拟化过程中,用户大多会考虑目前现有的服务器.存储.交换机等基础设备是否可 ...

  10. python报错UnicodeDecodeError:

    Python 里面的编码和解码也就是 unicode 和 str 这两种形式的相互转化.编码是 unicode -> str,相反的,解码就 是 str -> unicode.剩下的问题就 ...