下面例子,是一般测试框架的基本结构

框架知识点包括:实例化被测试模块类、装载测试用例、测试套件打包、保存测试输出结果、生成测试报告等

测试情况包括   :跳过某个case、执行成功、执行失败

#待测试模块 -> myclass.py

class myclass:
  def __init__(self):
    pass

  def sum(self, x, y):
    return x+y

  def sub(self, x, y):
    return x-y

  def cheng(self, x, y):
    return x*y

#单元测试模块 -> mytest.py

import unittest     #导入测试模块
import myclass    #导入待测试模块

class mytest(unittest.TestCase):

  #初始化工作
  def setUp(self):
    self.tclass = myclass.myclass()    #实例化了被测试模块中的类

  #退出清理工作
  def tearDown(self):
    pass

  #具体的测试用例
  def test_sum(self):
    self.assertEqual(self.tclass.sum(1,2) ,3)

  #跳过某个case
  @unittest.skip("I don't want to run this case.")
  def test_sub(self):
    self.assertEqual(self.tclass.sub(4,2) ,2)

  def test_cheng(self):
    self.assertEqual(self.tclass.cheng(2,3) ,5)

if __name__ == '__main__':

  #装载测试用例(该句话等价于tests = [mytest("test_sum"),mytest("test_sub"),mytest("test_cheng")])
  tests = unittest.TestLoader().loadTestsFromTestCase(mytest)

  #使用测试套件并打包测试用例(addTests()等价于addTest())
  suite = unittest.TestSuite()
  suite.addTest(tests)

  #保存unittest的测试输出日志
  log_name = "log.txt"
  with open(log_name, 'w+')as f:
    result = unittest.TextTestRunner(stream = f, verbosity = 2).run(suite)

  #若不保存测试输出结果,执行如下命令
  #result = unittest.TextTestRunner(verbosity = 2).run(suite)

  #生成测试报告
  print("testsRun:%s" %result.testsRun)
  print("failures:%s" %len(result.failures))
  print("errors:%s" %len(result.errors))
  print("skipped:%s" %len(result.skipped))

#以上“if __name__ == '__main__':”下的内容,完全可以使用“unittest。main()”替代(前提是:所有的测试模块均以test开头)

交互界面执行结果:

测试输出结果(log):

测试结果保存地址:C:\Users\xxx\Desktop

Python unittest 基本框架解析(2)的更多相关文章

  1. Python unittest基本框架组成(1)

    Python的标准库——unittest(可以实现自动化测试框架的搭建) python unittest四大组成“元件”: test fixture(测试脚手架)——测试代码的运行环境,指测试准备前和 ...

  2. 《selenium2 python 自动化测试实战》(21)——unittest单元测试框架解析

    unittest是展开自动化测试的基础——这个框架很重要! 我们先自己写一个测试类: 1.被测试类 Widthget.py: # coding: utf-8 class Widthget:    de ...

  3. python unittest单元测试框架-2discover

    基于TestLoader提供的discover方法实现用例执行 当用例达达到数十条后,在runtest.py文件中通过addTest()添加/删除测试用例就非常麻烦.此时可以使用discover方法找 ...

  4. UnitTest单元测试框架解析【实用篇】

    UnitTest是展开自动化测试的基础——这个框架很重要!首先我们先自己写一个测试类: 1.被测试类 Widthget.py: # coding: utf-8class Widthget: def _ ...

  5. python:unittest(测试框架)

    一,基本概念 TestCase:所有测试用例的基类 TestLoad:加载测试用例,返回TestSuite(测试套件) TestSuite:创建测试套件 TextTestRunner:运行测试用例 T ...

  6. python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures

    1.用例执行顺序 unittest默认会按照ascii码的顺序,依次执行.类名--方法名排序,使用discover也是默认排序.如果不想使用默认排序,就使用testsuite测试集的方式. impor ...

  7. python unittest单元测试框架-1

    Test Case.Test Suite.Test Runner.Test Fixture Test Case:单个测试用例 Test Suite:测试组合.可以把多个测试用例集合在一起执行. Tes ...

  8. Python web自动化测试框架搭建(功能&接口)——unittest介绍

    Python UnitTest测试框架介绍 1)         TestCase:所有测试用例类继承的基本类, TestCase的实例就是测试用例 2)         TestSuite:测试套件 ...

  9. unittest 单元测试框架

    引入 unittest 框架 相想使用unittest 框架,首先要引入unittest 包 import unittest class Baidu(unittest.TestCase): Baidu ...

随机推荐

  1. Tomcat可以实现Session共享方案

    说明:原来Tomcat也是可以实现Session共享的,这样大大减少的硬编码的实现,并且前面用Nginx分流时不用考虑Session的问题,因为是Web容器提供了Session共享的支持. 1.在每个 ...

  2. Java中设置Session过期时间(Spring Boot)

    1.Spring Boot: server.session.cookie.comment = #注释会话cookie. server.session.cookie.domain = #会话cookie ...

  3. java下XML与JSON互相转换的Utils类

    原文:http://heipark.iteye.com/blog/1394844 需要json-lib-2.1-jdk15.jar和xom-1.2.5.jar,maven pom.xml如下: < ...

  4. Java: 创建自带依赖库的Jar包

    pom.xml文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo ...

  5. Meteor Blaze

    Blaze是Meteor 软件包用于构建现场反应模板. Render方法 这种方法被用于绘制模板到DOM.首先,我们将创建 myNewTemplate 之后渲染. 我们增加 myContainer 这 ...

  6. DICOM:再次剖析fo-dicom中DicomService的自己定义事件绑定

    题记: 趁着<从0到1>大火的热潮,最近又一次翻阅了一遍<从一到无穷大>(这样是不是感觉整个非负数轴就圆满了^_^). 尽管作为科普类书籍.可是里面的内容还是比較深奥,幸亏有作 ...

  7. vue 自定义 移动端筛选条件

    1.创建组件 components/FilterBar/FilterBar.vue <template> <div class="filterbar" :styl ...

  8. Nginx在Linux下的安装部署

    Nginx简单介绍 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 server,也是一个 IMAP/POP3/SMTP server.Nginx作为 ...

  9. 从PRISM开始学WPF(一)WPF?

    从PRISM开始学WPF(一)WPF?   我最近打算学习WPF ,在寻找MVVM框架的时候发现了PRISM,在此之前还从一些博客上了解了其他的MVVM框架,比如浅谈WPF中的MVVM框架--MVVM ...

  10. exadata(ilom) 练习

    Oracle(R) Integrated Lights Out Manager Version 3.0.16.10 r65138 Copyright (c) 2011, Oracle and/or i ...