Python的Unittest的使用

本文详细介绍了Python的unittest单元测试框架的使用方法,包括测试用例、测试套件、断言方法等核心概念,并提供了生成HTML测试报告的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Unittest的使用

一、简介

unittest是一个python版本的单元测试框架,可以用于python的单元测试

特点:

自动化测试用例的组织和管理

提供丰富的比较方法,完成结果的检查

提供执行过程数据,如:执行时间、执行结果等

  • 语法

Test Case:一个TestCase实例就是一个测试用例,即一个test开头的测试函数。

Test Fixture:用于测试前的环境初始化和测试后的环境清理,通过setUp函数和tearDown函数完成。

Test Runner:unittest单元测试框架提供了TextTestRunner类来运行多个Test Suite或test case。

Test Suite:一个功能测试需要很多Test Case,可以多个测试用例统一进行执行,把多个用例加到一个Test Suite中。

 

  • 测试模板

Import unittest

class Test(unittest.TestCase):
    @classmethod   #setUpClass只执行一次。如果使用setUp一个测试用例执行一次
    def  setUpClass(self):
        print(“测试开始”)
    def  testoo1(self):
        print(“测试用例一”)

def  testjf002(self):

print(“测试用例二”)
    def  testcf003(self):
       print(“测试用例三”)

@classmethod  #teraDownClass执行一次 如果使用teraDown一个测试用例执行一次
    def  tearDown(self):   
       print(“测试结束’)

#执行测试

If  ‘__name__’ ==’__main__’:

    Unittest.main()

 

  • 断言

   断言方法是 unittest 框架提供的一组方法,可以通过这些方法完成期望结果和实际结果的对比。常用方法有:

assert+空格+要判断语句+逗号+“报错语句”   python提供

assertEqual(a,b,msg=None)  检查a==b,不等则报错

assertNotEqual(a,b,msg=None)  检查a!=b,相等则报错

assertIn(a,b,msg=None)  检查a in b,不在报错

assertNotIn(a,b,msg=None)  检查a not in b,在报错

assertTrue(a,msg=None)  检查表达式a成立,不成立报错

assertFalse(a,msg=None) 检查表达式a不成立,成立报错assertIsInstance(obj,cls,msg=None) 检查obj是cls一个实例,是则pass,不是就报错

assertNotIsInstance(obj,cls,msg=None)检查obj不是cls一个实例,不是则pass

  • 执行的方法

#执行测试用例方法一
# if __name__ =="__main__":
#     unittest.main()

#执行测试用例方法二
#创建测试套件
 suite = unittest.TestSuite()
 #添加测试用例
 suite.addTest(Test('testcf004'))
#运行测试套件
 runobj = unittest.TextTestRunner()
 runobj.run(suite)


#执行测试用例方法三(批量导入)
#创建测试套件、添加测试用例
testsuite = unittest.defaultTestLoader.discover(r'./\test001',pattern='unittest断言.py')
#运行测试套件
 runobj = unittest.TextTestRunner()
 runobj.run(testsuite)

 

 

  • 生成HTML测试报告

自动化测试执行完成以后,需要输出一个完整的测试报告,供测试人员查看测试执行情况,确认自动化测试执行发现的缺陷情况。

HTMLTestRunner是Python标准库的unittest单元测试框架的一个扩展,可以生成一个可读性很强的HTML格式的测试报告。

下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

下载HTMLTestRunner.py文件,然后将其复制到 D:\Python\Python37\Lib 下(以实际安装目录为准)

import  HTMLTestRunner
#创建测试套件、添加测试用例

testsuite = unittest.defaultTestLoader.discover(r'./\test001',pattern='unittest断言.py')
wenjian = open("测试报告.html",mode="ab")  #创建存储测试报告的HTML文件

#使用HTMLTestRunner方法执行测试套件,打印测试报告
HTMLTestRunner.HTMLTestRunner(stream=wenjian,title="简易计算器测试报告",description="简易计算器").run(testsuite)

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值