1. '''
    题目要求
  2.  
  3. 1:自己写一个工具类,完成数学的加减乘除以及平方积操作
    2:对每个方法写2个用例
    3:针对测试用例选用不同的方法去执行,然后生成测试报告
    '''
  4.  
  5. '''
    实现:
      3个文件:
  1. work_20181127_mathtool.py 定义计算方法
  2.  
  3. work_20181127_testcase.py 定义测试用例
  1. work_20181127_testrun.py 定义测试集,生成测试报告
  1. '''
  2.  
  3. 代码:
  1. work_20181127_mathtool.py
  1. # -*- coding:utf-8 -*-
  2.  
  3. '''
    @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/
  4.  
  5. '''
  6.  
  7. class MathTool:
  8.  
  9. # 加法
    def add(a,b):
    res = a + b
    print('{0} + {1} = {2}'.format(a,b,res))
    return res
  10.  
  11. # 减法
    def pop(a,b):
    res = a - b
    print('{0} - {1} = {2}'.format(a,b,res))
    return res
  12.  
  13. # 乘法
    def mul(a,b):
    res = a * b
    print('{0} * {1} = {2}'.format(a,b,res))
    return res
  14.  
  15. # 除法
    def div(a,b):
    res = a / b
    print('{0} / {1} = {2}'.format(a,b,res))
    return res
  16.  
  17. # 平方积
    def square(a,b):
    res = (pow(a,2)) * (pow(b,2))
    print('{0} 与 {1} 的平方积 = {2}'.format(a,b,res))
    return res
  18.  
  1. work_20181127_testcase.py
  1. # -*- coding:utf-8 -*-
  2.  
  3. '''
    @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/
  4.  
  5. '''
  6.  
  7. import unittest
    from work_20181127_mathtool import MathTool
  8.  
  9. class TestMT(unittest.TestCase):
  10.  
  11. def setUp(self):
    print('开始对MathTool进行运算测试!')
  12.  
  13. def tearDown(self):
    print('测试完成!')
  14.  
  15. def test_add_001(self):
    res = MathTool.add(10,5)
    expect = 15
    try:
    self.assertEquals(expect,res)
    print('测试通过!')
    except Exception as e:
    raise e
  16.  
  17. def test_add_002(self):
    res = MathTool.add(3,4)
    expect = 6
    try:
    self.assertEquals(expect,res)
    except Exception as e:
    raise e
  18.  
  19. def test_pop_001(self):
    res = MathTool.pop(6,2)
    expect = 4
    try:
    self.assertEquals(expect,res)
    except Exception as e:
    raise e
  20.  
  21. def test_pop_002(self):
    res = MathTool.pop(10,4)
    expect = 5
    try:
    self.assertEquals(expect,res)
    except Exception as e:
    raise e
  22.  
  23. def test_mul_001(self):
    res = MathTool.mul(2,2)
    expect = 4
    try:
    self.assertEquals(expect,res)
    except Exception as e:
    raise e
  24.  
  25. def test_mul_002(self):
    res = MathTool.mul(3,4)
    expect = 11
    try:
    self.assertEquals(expect,res)
    except Exception as e:
    raise e
  26.  
  27. def test_div_001(self):
    res = MathTool.div(20,5)
    expect = 4
    try:
    self.assertEquals(expect,res)
    except Exception as e:
    raise e
  28.  
  29. def test_div_002(self):
    res = MathTool.div(10,5)
    expect = 3
    try:
    self.assertEquals(expect,res)
    except Exception as e:
    raise e
  30.  
  31. def test_square_001(self):
    res = MathTool.square(2,3)
    expect = 36
    try:
    self.assertEquals(expect,res)
    except Exception as e:
    raise e
  32.  
  33. def test_square_002(self):
    res = MathTool.square(2,4)
    expect = 63
    try:
    self.assertEquals(expect,res)
    except Exception as e:
    raise e
  1. work_20181127_testrun.py
  1. # -*- coding:utf-8 -*-
  2.  
  3. '''
    @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/
  4.  
  5. '''
  6.  
  7. import unittest
    import work_20181127_testcase
    from work_20181127_testcase import TestMT
    import HTMLTestRunner
  8.  
  9. def run_test_01():
    suite = unittest.TestSuite()
    loader = unittest.TestLoader()
    suite.addTest(loader.loadTestsFromModule(work_20181127_testcase))
  10.  
  11. with open('test_result.html','wb+') as file:
    runner = HTMLTestRunner.HTMLTestRunner(
    stream = file,
    verbosity = 2
    )
    runner.run(suite)
  12.  
  13. def run_test_02():
    suite = unittest.TestSuite()
    loader = unittest.TestLoader()
    suite.addTest(loader.loadTestsFromTestCase(TestMT))
  14.  
  15. with open('test_result.html','wb+') as file:
    runner = HTMLTestRunner.HTMLTestRunner(
    stream = file,
    verbosity = 2
    )
    runner.run(suite)
  16.  
  17. 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)
  18.  
  19. if __name__ == '__main__':
  20.  
  21. run_test_01()
    # run_test_02()
    # run_test_03()
  22.  
  23. 测试报告:
  1.  

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. JavaScript中登录名的正则表达式及解析(0基础)

    简言 在JavaScript中,经常会用到正则表达式来进行模式匹配.例如,登录名验证,密码强度验证,字符串查找或替换等操作.现在就开始吧,零基础写出你的第一个正则表达式! 在做用户注册时,都会用到登录 ...

  2. 图解HTTP总结

    一.TCP/IP 的分层管理 二.TCP/IP通信传输流 ARP地址解析协议参考:https://www.cnblogs.com/csguo/p/7527303.html 三.各种协议与HTTP协议的 ...

  3. Android仿360悬浮小球自定义view实现

    转载请标明出处:http://www.jianshu.com/u/a5ad093cffe8 效果图如下: 图片.png   图片.png 实现当前这种类似的效果 (360小球 悬浮桌面差不错类似).第 ...

  4. 【虚拟机-网关】如何在使用应用程序网关和 Nginx 的环境下实现强制 HTTPS 跳转

    背景介绍 大家在使用 Nginx 部署网站时,实现 HTTP 到 HTTPS 的强制跳转是非常容易的事情,一般可以使用rewrite 命令或者使用返回自定义 301 页面的方法对 HTTP 请求进行 ...

  5. 如何从桌面程序向浏览器传递cookie或自定义header

    类似问题 从c#程序启动ie并传递cookie 打开默认浏览器并传递cookie 打开一个web浏览器使用c#应用程序并添加请求头 猜想 从wpf程序打开默认浏览器并定位到一个url ,并且向这个ur ...

  6. line-block,white-space,overflow

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

  7. 【UML】使用环境(转)

    http://blog.csdn.net/sds15732622190/article/details/49404169 用例图         用例图是在需求文档中使用的,但一定要配合用例一同使用. ...

  8. codeforce Gym 100418K Cards (概率,数学)

    题意:麦田的故事,n张牌,取x张牌,记住前x张牌最大的值m,继续往后取,遇到第一张比m大的牌就停下来.求一个x使得最后的牌在整副牌里是最大的期望最大. 假设最大的牌是A,A在各种位置出现的概率就是相等 ...

  9. UVA225 Golygons 黄金图形(dfs+回溯)

    剪枝1:在同一个维度上的点具有相同的奇偶性,如果奇数数量只有奇数个那么一定不能返回原点. 剪枝2:当前位置怎么也走不回去. 3:沿途判断障碍即可. 在oj上提交0.347s,最快的0.012s,应该有 ...

  10. 《队长说得队》【Alpha】Scrum meeting 4

    项目 内容 这个作业属于哪个课程 >>2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 >>实验十二 团队作业8:软件测试与ALPHA冲刺 团队名称 ...