Python中Unittest框架的具体使用

 更新时间:2019年08月27日 11:10:10   作者:Tester_hope  
这篇文章主要介绍了Python中Unittest框架的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Unittest

1.环境

Unittest为Python内嵌的测试框架,不需要特殊配置,仅需要在File---settings---Tools----Python Intergrated Tools下配置框架为Unittest

2.编写规范

  • 需要导入 import unittest
  • 测试类必须继承unittest.TestCase
  • 测试方法以 test_开头
  • 模块和类名没有要求

3.Unittest介绍

import unittest

def add(x, y):
 return x + y

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

class UnittestDemo(unittest.TestCase):

 def setUp(self):
  print("I an setup")

 def test_add(self):
  print("my first unit test demo----add")
  self.assertEqual(add(10,1),11,"assert equal")

 def test_sub(self):
  print("my first unit test demo----sub")
  self.assertEqual(sub(10, 1), 9, "assert equal2")

 @unittest.skip("i don't want to run this case.")
 def test_sub1(self):
  print("my first unit test demo----sub1")
  self.assertEqual(sub(10, 1), 9, "assert equal3")

 def tearDown(self):
  print("I an tearDown")

setUp及TearDown

方法级别的,类里面的每个方法调用一次

 def setUp(self):
  print("I an setup")

setUpClass及tearDownClass

类级别的,类里面的所有方法仅执行一次

  @classmethod
 def setUpClass(cls):
  print("I an setUpClass") 

setUpModule,tearDownModule

模块级别的,执行模块里面类中的所有方法仅执行一次

4.Unittest使用

import unittest

from unittest_task import UnittestDemo
from HTMLTestRunner import HTMLTestRunner


suite=unittest.TestSuite()#创建用例集合
tests = [UnittestDemo("test_add"), UnittestDemo("test_sub"),UnittestDemo("test_sub1")]
suite.addTests(tests)


with open('HTMLReport.html', 'wb') as fi:
 runner = HTMLTestRunner(stream=fi,
       title = 'MathFunc Test Report',
       description='generated by HTMLTestRunner.',
       verbosity=2
       )
 runner.run(suite)

TestCase

多个测试用例集合在一起,就是TestSuite

TestSuite

多个测试用例集合在一起,就是TestSuite

TestLoader

用来加载TestCase到TestSuite中的

TestRunner

执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

skip装饰器

跳过某个用例不执行

@unittest.skip("i don't want to run this case.")

无条件跳过

 unittest.skip(reason)

当condition为True时跳过

unittest.skipIf(condition, reason)

当condition为False时跳过

unittest.skipUnless(condition, reason)

self.skipTest('do not run this.')

5.Unittest生成报告

5.1 Unittest生成txt格式报告

if __name__ == '__main__':
 suite = unittest.TestSuite()
 
 tests = [TestMathFunc("test_add"), TestMathFunc("test_minus"), TestMathFunc("test_divide")]
 suite.addTests(tests)
 
 with open('UnittestTextReport.txt', 'a') as f:
  runner = unittest.TextTestRunner(stream=f, verbosity=2)
  runner.run(suite)
 

运行该文件,就会发现目录下生成了'UnittestTextReport.txt,所有的执行报告均输出到了此文件中。

verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告、2 是详细报告

5.2 Unittest生成html格式报告

with open('HTMLReport.html', 'wb') as fi:
 runner = HTMLTestRunner(stream=fi,
       title = 'MathFunc Test Report',
       description='generated by HTMLTestRunner.',
       verbosity=2
       )
 runner.run(suite)

输出测试报告为HTML格式,unittest中htmltestrunner导出测试报告,可以修改htmltestrunner中的测试代码

其中,的python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决见:

https://www.jb51.net/article/168573.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python枚举类型定义与使用讲解

    python枚举类型定义与使用讲解

    在python中枚举是一种类(Enum,IntEnum),存放在enum模块中。枚举类型可以给一组标签赋予一组特定的值,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • python字符串中加空格的四种方法

    python字符串中加空格的四种方法

    本文主要介绍了python字符串中加空格的四种方法,包括使用加法运算符、join()方法、format()方法和f-string,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • python实现动态数组的示例代码

    python实现动态数组的示例代码

    这篇文章主要介绍了python实现动态数组的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python中如何利用matplotlib画多个并列的柱状图

    python中如何利用matplotlib画多个并列的柱状图

    python是一个很有趣的语言,可以在命令行窗口运行,下面这篇文章主要给大家介绍了关于python中如何利用matplotlib画多个并列的柱状图的相关资料,需要的朋友可以参考下
    2022-01-01
  • python 递归调用返回None的问题及解决方法

    python 递归调用返回None的问题及解决方法

    这篇文章主要介绍了python 递归调用返回None的问题,本文通过实例代码给大家记录了解决方案,代码简单易懂,非常不错对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • python实现自动清理重复文件

    python实现自动清理重复文件

    这篇文章主要介绍了python如何实现自动清理重复文件,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-08-08
  • 手动安装Anaconda环境变量的实现教程

    手动安装Anaconda环境变量的实现教程

    这篇文章主要介绍了手动安装Anaconda环境变量的实现教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 区分python中的进程与线程

    区分python中的进程与线程

    这篇文章主要介绍了区分python中的进程与线程,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-08-08
  • Python爬取当当、京东、亚马逊图书信息代码实例

    Python爬取当当、京东、亚马逊图书信息代码实例

    这篇文章主要介绍了Python爬取当当、京东、亚马逊图书信息代码实例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • python如何通过openpyxl读写Excel文件

    python如何通过openpyxl读写Excel文件

    python操作excel的库有很多,有的库只能读取xsl格式,比如xlrd库,有的库只能写xsl格式,比如xlwt库,有的只能读写xslx格式,比如openpyxl库,综合各库及 xslx 格式比较常见,所以本文主要讲解openpyxl库对xslx格式的excel操作,需要的朋友可以参考下
    2023-10-10

最新评论