1 TestCase

一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,

包括测试环境的准备(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。单元

测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。

2 TestSuite

而多个测试用例集合在一起就是TestSuite,而且TestSuite也可以嵌套TestSuite。TestLoader是用来加载测试用例到TestSuite中的。

3 TextTestRunner

TextTestRunner是用来执行测试用例的,其中的run()会执行TestSuite/TestCase中的run(result)方法。测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。

4 Fixture

而对一个测试用例环境的搭建和销毁,是一个fixture。

案例:定义一个calculate类,然后用unittest进行测试;

#!/usr/bin/python3  
class Math:
  def __init__(self,a,b):
    self.a = int(a)
    self.b = int(b) def add(self):
    return self.a + self.b 测试代码:
#!/usr/bin/python3  
from calculator import Math
import unittest class TestMath(unittest.TestCase):
  def setUp(self):
    print('test start')
def test_add(self):
    j = Math(5,10)
    #self.assertEqual(j.add(),15)
    self.assertEqual(j.add(),12)
def tearDown(self):
    print('test end') if __name__ == '__main__':
  suite = unittest.TestSuite()
  suite.addTest(TestMath('test_add')) runner = unittest.TextTestRunner()
  runner.run(suite) 执行结果;

Testing started at 16:39 ... C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\python.exe "D:\PyCharm Community Edition 2017.3.3\helpers\pycharm\_jb_unittest_runner.py" --path E:/Selenium/unittest/test_Math.py Launching unittests with arguments python -m unittest E:/Selenium/unittest/test_Math.py in E:\Selenium\unittest test start test end


Ran 1 test in 0.008s


FAILED (failures=1)


12 != 15


Expected :15 Actual   :12  <Click to see difference>


Traceback (most recent call last):   File "D:\PyCharm Community Edition 2017.3.3\helpers\pycharm\teamcity\diff_tools.py", line 30, in _patched_equals     old(self, first, second, msg)   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\unittest\case.py", line 829, in assertEqual     assertion_func(first, second, msg=msg)   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\unittest\case.py", line 822, in _baseAssertEqual     raise self.failureException(msg) AssertionError: 15 != 12


During handling of the above exception, another exception occurred:


Traceback (most recent call last):   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\unittest\case.py", line 59, in testPartExecutor     yield   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\unittest\case.py", line 605, in run     testMethod()   File "E:\Selenium\unittest\test_Math.py", line 13, in test_add     self.assertEqual(j.add(),12)


Process finished with exit code 1

因为12 !=15,所以报错。


												

unittest核心要素的更多相关文章

  1. unittest自动化测试框架核心要素以及应用

    1. unittest核心要素 unittest介绍 测试框架,不仅仅用于单元测试 python自动的测试包 用法和django.test.TestCase类似 1.1.unitest介绍和核心要素 ...

  2. webgl核心要素

    WebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,提供硬件3D加速渲染, ...

  3. CODING 敏捷实战系列课第二讲:Scrum 敏捷项目管理核心要素之 3355

    Scrum 是敏捷开发流派中最著名和最落地的一支,全球 70% 以上公司的敏捷转型都是以 Scrum 起步.CODING 特邀敏捷顾问.CST & CTC 认证敏捷教练申健老师将在本课程< ...

  4. 独立开发一个云(PaaS)的核心要素, Go, Go, Go!!!

    最近一年的工作,有很大的比重在做云平台的事情,简单来说,就是为公司内用户提供一个PaaS,用户可以在我们的云平台上方便的将单机服务程序扩展为多实例程序,以平台服务化的方式对外提供.在这里简单分享一下. ...

  5. 基于.NetCore3.1系列 —— 日志记录之日志核心要素揭秘

    一.前言 在上一篇中,我们已经了解了内置系统的默认配置和自定义配置的方式,在学习了配置的基础上,我们进一步的对日志在程序中是如何使用的深入了解学习.所以在这一篇中,主要是对日志记录的核心机制进行学习说 ...

  6. python单元测试框架-unittest(一)

    简介 unittest单元测试框架不仅可以适用于单元测试,还可以使用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果. ...

  7. python-zx笔记9-单元测试

    unittest核心要素 1.TestCase 一个TestCase的实例就是一个测试用例.什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以 ...

  8. 单元测试框架unittest

    单元测试:单元测试,是指对软件中的最小可测试单元进行检查和验证,对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义如:c语言中单元指一个函数,java里单元指一个类,图形化的软件中可以 ...

  9. UnitTest 用法

    功能 1.能组织多个用例去执行 2.提供丰富的断言方法 3.提供丰富的日志与测试结果 核心要素 1.TestCase 2.TestSuite 3.TextTestRunner 4.Fixture 用法 ...

随机推荐

  1. Top 10 顶级项目管理工具

    成功的项目都要归功于成功的项目管理.这些工具帮你踏上成功之旅! 项目管理是成功完成项目并使公司变得伟大的秘诀.不,这不是标题党(clickbait) -- 我已经看到两家软件公司(我在那里工作)因为项 ...

  2. PL/SQL 调用JAVA使用UDP发送数据

    步骤如下 1.直接在SQL命令中写入JAVA代码(用SYS帐号执行,不然权限等太麻烦) create or replace and resolve java source named udp as i ...

  3. python(自用手册)导图

  4. 源码分析Retrofit请求流程

    Retrofit 是 square 公司的另一款广泛流行的网络请求框架.前面的一篇文章<源码分析OKHttp执行过程>已经对 OkHttp 网络请求框架有一个大概的了解.今天同样地对 Re ...

  5. LoRaWAN调试踩坑心得(二)

    先说两句 抱歉,由于工作原因和个人原因,中间停更了这么久.接下来,本人会继续往下更,内容包括但不仅限于LoRa.文章还是会按照个人的习惯,坚持原创,一是作为自己的笔记,二是和广大工程师分享交流. Lo ...

  6. 【转】python爬虫之腾讯视频vip下载

    本文转自如下:作者:jia666666 原文:https://blog.csdn.net/jia666666/article/details/82466553 版权声明:本文为博主原创文章,转载请附上 ...

  7. 变量、常量、input、if语句

    Chapter2 Python基础 2.1 变量命名规则 字母.数字.下划线组成 不能数字开头 不能使用python中的关键字 变量名具有意义 推荐驼峰(ArvinGood).或者下划线方式 (arv ...

  8. 【原创】Linux cpufreq framework

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  9. C 扩展对闭包特性的支持

    今日听说某君批评 C 语言说它[输入一个参数返回一个函数]很困难. 例如在 Python 中,你可以 def addn(n): def addx(x): return n + x return add ...

  10. HDU-3038How Many Answers Are Wrong权值并查集

    How Many Answers Are Wrong 题意:输入一连串的区间和,问和前面的矛盾个数: 思路:我在做专题,知道是并查集,可是还是不知道怎么做,学了一下权值并查集和大佬的优秀思路,感觉回了 ...