python自带单元测试框架unittest

本文详细介绍了unittest框架的四大核心组件:TestCase、TestSuit、TestRunner和TestFixture,并阐述了unittest的工作流程。从创建测试用例、执行顺序到用例收集与执行,以及测试报告的生成,给出了具体的代码示例。同时,文章还展示了如何组织测试用例的执行顺序和如何生成测试报告。最后,通过代码演示了如何收集和执行测试用例以及生成HTML测试报告。

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

 一、unittest框架4大核心组件

  1. TestCase:定义你的测试用例
  2. TestSuit:收集测试用例
  3. TestRunner:执行测试用例
  4. TestFixture:测试脚手架,前置条件,后置条件,根据实际情况选择使用

二、unittest工作流程

  1. 使用TestCase按照规则写测试用例,每一个函数为一个测试用例
  2. TestSuit:创建一个测试套件,收集测试用例到测试套件
  3. TestRunner统一执行测试套件里面的用例
  4. 生成测试报告

三、测试用例编写

  1. 导入模块:import unittest,测试用例必须写在测试类里面
  2. 创建一个测试类,继承unittest.TestCase
  3. 测试用例以test开头
  4. 执行入口:unittest.main()
  5. 测试用例包含哪些东西
    1. 前置条件(token、session):函数级别(setup、teardown)、类级别(setUpClass、tearDownClass)

    2. 测试步骤(ddt+接口请求+提取全局变量)

    3. 测试断言(利用unittest框架自带的断言)

    4. 后置清理(是否要清理掉测试数据,删除测试,关闭各种文件的连接(数据库))

    5. 日志收集(还原整个测试过程)

  6. 用例执行顺序

    1. 按照测试用例名称的Ascii码大小进行执行

    2. chr():Ascii---字符、ord():字符---Ascii

四、测试用例收集与执行         

五、测试报告

六、代码演示

import unittest


class TestDemo(unittest.TestCase):
    def setUp(self) -> None:
        print('每一个用例执行前执行一次')

    def tearDown(self) -> None:
        print('每一个用例执行结束之后执行')

    @classmethod
    def setUpClass(cls) -> None:
        print('测试类执行开始时执行')

    @classmethod
    def tearDownClass(cls) -> None:
        print('测试类执行完成之后执行一次')

    def test_01(self):
        print("test1")

    def test_02(self):
        print("test2")

    def test_03(self):
        print('test3')

    # 错误的用例
    def test_demo(self):
        print('test4')


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

一、用例收集与执行

  1. 另起一个页面对用例进行收集和执行

二、用例收集

  1. 收集单个、多个测试用例      

三、代码演示

import unittest
from day15.test_case import TestDemo

# 创建测试套件
suite = unittest.TestSuite()
# 添加测试用例到测试套件
suite.addTest(TestDemo('test_01'))
# suite.addTests(TestDemo('test_01'),TestDemo('test_02'))
# suite.addTest(unittest.makeSuite(TestDemo))
# 运行测试用例
runner = unittest.TextTestRunner()
runner.run(suite)

四、测试报告

import unittest
import os
from BeautifulReport import BeautifulReport
from unittestreport import TestRunner

# 收集测试用例
# res = unittest.TestLoader().loadTestsFromTestCase()
# 指定收集某个目录下的某个测试用例文件的测试用例
dir_path = os.path.dirname(__file__)
suite = unittest.defaultTestLoader.discover(start_dir=dir_path)
# start_dir:测试用例目录
# pattern='test*.py'
runner = unittest.TextTestRunner()
runner.run(suite)

# Html测试报告
# br = BeautifulReport(suites=suite)
# br.report(description='演示',filename='test_report.html')

# unittestreport 收集测试报告
TestRunner = TestRunner(
    suite=suite,
    filename="report.html",
    report_dir=".",
    title='测试报告',
    tester='测试员',
    desc="XX项目测试生成的报告",
    templates=1

)
runner.run()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值