当前位置: 首页 > news >正文

【python实操】python小程序之TestSuite和TestRunner

引言

python小程序之TestSuite和TestRunner

文章目录

  • 引言
  • 一、TestSuite&TestRunner
    • 1.1 概念
      • 1.1.1 TestSuite
      • 1.1.2 TestRunner
    • 1.2 题目
    • 1.3 代码
      • 1.3.1 case1代码
      • 1.3.2 case2代码
      • 1.3.3 TestSuite和TestRunner代码
    • 1.4 代码解释
  • 二、思考
    • 2.1 TestSuite&TestRunner

一、TestSuite&TestRunner

1.1 概念

TestSuiteTestRunnerunittest 框架中的两个重要组件,它们允许更灵活地组织和运行测试

1.1.1 TestSuite

TestSuite 用于将多个测试用例组合在一起,形成一个测试套件。这样可以一次性运行一组相关的测试

1.1.2 TestRunner

TestRunner 负责执行测试套件,并生成测试报告。默认情况下,unittest 使用 TextTestRunner 来在控制台上显示结果

这种方式能够更细粒度地控制哪些测试被运行,以及如何运行这些测试。可以根据需要创建多个测试套件,并选择不同的测试运行器来获取不同的输出格式。例如,可以使用其他类型的 TestRunner(如 HTMLTestRunner)来生成 HTML 格式的测试报告

1.2 题目

如何

1.3 代码

1.3.1 case1代码

import unittestclass TestCase1(unittest.TestCase):def test_method1(self):print('这是case1的method1')def test_method2(self):print('这是case1的method2')

1.3.2 case2代码

import unittestclass TestCase2(unittest.TestCase):def test_method1(self):print('这是case2的method1')def test_method2(self):print('这是case2的method2')

1.3.3 TestSuite和TestRunner代码

import unittest
from testcase1 import TestCase1
from testcase2 import TestCase2suite = unittest.TestSuite()suite.addTest(TestCase1('test_method1'))
suite.addTest(TestCase1('test_method2'))
suite.addTest(TestCase2('test_method1'))
suite.addTest(TestCase2('test_method2'))runner = unittest.TextTestRunner()if __name__ == '__main__':result = runner.run(suite)

输出结果:
在这里插入图片描述

1.4 代码解释

代码展示了如何使用 unittest 框架中的 TestSuiteTextTestRunner 来组织和运行多个测试用例

  1. 导入模块

    import unittest
    from testcase1 import TestCase1
    from testcase2 import TestCase2
    
    • unittest:这是 python 的单元测试框架,提供了编写和运行测试所需的所有功能
    • testcase1testcase2:假设这是两个不同的文件(模块),每个文件中定义了一个或多个测试类。这里从这两个文件中分别导入了 TestCase1TestCase2
  2. 创建 TestSuite 对象

    suite = unittest.TestSuite()
    
    • 创建一个 TestSuite 对象 suite,用于存储一组测试用例
  3. 添加测试方法到 TestSuite

    suite.addTest(TestCase1('test_method1'))
    suite.addTest(TestCase1('test_method2'))
    suite.addTest(TestCase2('test_method1'))
    suite.addTest(TestCase2('test_method2'))
    
    • 使用 addTest 方法将具体的测试方法添加到 TestSuite 中。这里添加了四个测试方法:
      • TestCase1 类中的 test_method1
      • TestCase1 类中的 test_method2
      • TestCase2 类中的 test_method1
      • TestCase2 类中的 test_method2
  4. 创建 TextTestRunner 对象

    runner = unittest.TextTestRunner()
    
    • 创建一个 TextTestRunner 对象 runner,它负责执行 TestSuite 中的测试,并在控制台上输出结果
  5. 运行测试套件

    if __name__ == '__main__':result = runner.run(suite)
    
    • if __name__ == '__main__': 确保当脚本作为主程序运行时才会执行下面的代码块
    • runner.run(suite) 调用 run 方法来执行 TestSuite 中的测试,并返回一个 TestResult 对象,该对象包含了测试的结果信息

二、思考

2.1 TestSuite&TestRunner

如果需要更详细的输出,可以在创建 TextTestRunner 时传递 verbosity=2 参数,例如:

runner = unittest.TextTestRunner(verbosity=2)

http://www.mrgr.cn/news/52567.html

相关文章:

  • C语言二维数组的遍历 Java的强制转换和隐形转换
  • 人脸识别之疲劳检测
  • 集合框架11:泛型集合
  • 忙碌的工作和生活,地平线8号探界者商务背包伴左右
  • 【CAN 应用编程】SocketCan实战
  • Halcon基础-二维码识别
  • Java:类和对象
  • 【前端】Matter:基础概念与入门
  • 双指针 — 复写零
  • Java集合(2 :List)
  • 【工具变量】上市公司当年是否发生财务重述指标整理Stata代码(2000-2023年)
  • 【即见未来,为何不拜】聊聊分布式系统中的故障监测机制——Phi Accrual failure detector
  • [0633].第3-3节:@SentinueResource注解
  • nequip代码
  • 第二十三节 视频处理与保存
  • 初尝类型萃取--typename、模板偏特化、和traits之(三)类型萃取
  • [算法日常] 逆序对
  • 2024年了,视频生成模型离通用世界模拟器还有多大差距?SOTA模型全面评估
  • 单链表的定义
  • 数据结构 —— 链式二叉树(C语言讲解)