Python——单元测试框架unittest

一. unittest及其五个概念

一. unittest及其五个概念
unittest是python内置的单元测试框架,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件。类似于Java的Junit、TestNG。相关概念转载自https://blog.51cto.com/2681882/2123613
五个概念:test case,test suite,testLoader,test runner,test fixture

  • 1.test case :一个完整的测试单元,执行该测试单元可以完成对某一个问题的验证,完整体现在:测试前环境准备(setUp),执行测试代码(run),以及测试后环境还原(tearDown);
  • 2.test suite :多个测试用例的集合,测试套件或测试计划;
  • 3.testLoader :加载TestCase到TestSuite中的,其中loadTestsFrom__()方法用于寻找TestCase,并创建它们的实例,然后添加到TestSuite中,返回TestSuite实例;
  • 4.test runner :执行测试用例,并将测试结果保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息;
  • 5.test fixture:一个测试用例的初始化准备及环境还原,主要是setUp() 和 tearDown()方法;

二. test case

1. 测试用例初识

首先编写测试用例如下

import unittest
def func_1(x):
    return x+1
def func_2(x):
    return x+2
def func_3(x):
    return x+3

class FuncTest(unittest.TestCase):
    def test_func(self):
        self.assertEqual(func_1(3),4)

if __name__ == '__main__':
    unittest.main()

使用unittest编写测试用例,首先需要同时导入unittest模块和待测试功能模块,第二步自定义测试模块,该测试模块需继承自unittest.TestCase,第三步定义测试用例方法,且测试用例方法是以test_开头的,用例以断言的结果作为输出,上述代码运行结果如下:
在这里插入图片描述
修改断言为assertNotEqual则会运行失败,失败时结果如下:
在这里插入图片描述
注意:
1).上述两个结果截图中,第一排的字符.和F为每一个用例执行的结果的标识,其中成功是 .,失败是F,出错是E,跳过是S。
2).测试的执行跟方法的顺序没有关系。
3).unittest的入口main():
init文件参数(self, module=‘main’, defaultTest=None, argv=None,testRunner=None, testLoader=loader.defaultTestLoader,exit=True,verbosity=1,failfast=None,catchbreak=None,buffer=None)

verbosity参数:
(1)为0时:不显示结果标识
在这里插入图片描述
(2)为1时(默认):如此前展示结果显示结果标识
(3)为2时:输出详细用例测试过程
在这里插入图片描述
入口main()详见https://blog.csdn.net/fengguangke/article/details/81711981
4).更多断言详见官方文档:
在这里插入图片描述

2. skip跳过某个case

有两个方法:

  • 方法一:使用装饰器(@unittest.skip,@unittest.skipIf,@unittest.skipUnless,@unittest.expectedFailure)
    @unittest.skip(reason):强制跳过。reason是跳过原因
    @unittest.skipIf(condition, reason):condition为True的时候跳过
    @unittest.skipUnless(condition, reason):condition为False的时候跳过
    @unittest.expectedFailure:如果test失败了,这个test不计入失败的case数目
    示例:

                
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值