unittest 通过loadTestsFromName执行多个测试case

news2024/11/26 16:52:52

 这段代码是一个使用unittest模块编写的测试运行程序。它的主要功能是加载其他Python文件中的测试用例并运行这些测试用例。

首先,定义了一个主测试类MainTestCase,该类继承自unittest.TestCase。在这个类中,可以添加各种测试方法来测试不同的功能或模块。

然后,通过unittest.TestLoader()创建一个测试加载器对象loader,用于加载其他Python文件中的测试用例。测试用例可以通过loadTestsFromName()方法指定具体的测试用例名称。

接下来,定义了一个test_cases列表,其中存放了需要加载的其他Python文件中的测试用例。每个测试用例都使用loader.loadTestsFromName()方法加载,并添加到主测试类MainTestCase中。你可以根据需要,添加更多的测试文件和测试用例。

然后,创建一个测试套件suite,并将之前加载的所有测试用例添加到这个测试套件中。使用loader.loadTestsFromTestCase(MainTestCase)可以将MainTestCase类中的所有测试方法添加到测试套件中。

最后,创建一个测试运行器对象runner,并使用runner.run(suite)运行测试套件中的所有测试用例。通过设置verbosity参数为2,可以在控制台输出更详细的测试结果。

 main.py

import unittest
# from Testcase2 import TestcaseGo

class MyTestcase(unittest.TestCase):

    def test_1(self):
        print('main_test_1')
        self.assertEqual(2 + 2, 4)

    def test_2(self):
        print('main_test_2')
        self.assertEqual(2 + 2, 4)

Testcase2.py

import unittest

class TestcaseGo(unittest.TestCase):

    def test_1(self):
        print('TestcaseGo_test_1')
        self.assertEqual(2 + 2, 4)

    def test_2(self):
        print('TestcaseGo_test_2')
        self.assertEqual(2 - 2, 4)

    def test_3(self):
        print('TestcaseGo_test_3')
        self.assertEqual(2 + 2, 4)

run.py

import unittest

# 创建主测试类
class MainTestCase(unittest.TestCase):
    pass

if __name__ == '__main__':
    # 创建测试加载器
    loader = unittest.TestLoader()

    # 加载其他Python文件中的测试用例并添加到主测试类中
    test_cases = [
        loader.loadTestsFromName('main.MyTestcase'),
        loader.loadTestsFromName('Testcase2.TestcaseGo')
        # 添加更多的测试文件和测试用例
    ]
    suite = unittest.TestSuite(test_cases)
    suite.addTests(loader.loadTestsFromTestCase(MainTestCase))

    # 创建测试运行器并运行测试
    runner = unittest.TextTestRunner(verbosity=2)
    runner.run(suite)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1173246.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

产品经理入门学习(四):项目立项

参考引用 黑马-产品经理入门基础课程 1. 项目方案 1.1 主要阶段 立项阶段 基本方案:要做个什么项目,为什么要做这个项目,这个项目的作用和价值分别有哪些 上线阶段 设计阶段 运营阶段 开发阶段 总结阶段 测试阶段 2. 可行性分析 可…

Python语言_single_color_共140种--全平台可用

Python语言_single_color_共140种–全平台可用

3、Dockerfile 深入与其他细节

Dockerfile 在 Docker 中创建镜像最常用的方式,就是使用 Dockerfile。Dockerfile 是一个 Docker 镜像 的描述文件,我们可以理解成火箭发射的 A、B、C、D…的步骤。Dockerfile 其内部包含了一 条条的指令,每一条指令构建一层,因此每…

045_第三代软件开发-U盘监测

第三代软件开发-U盘监测 文章目录 第三代软件开发-U盘监测项目介绍U盘监测原理解释源代码 关键字: Qt、 Qml、 USB、 Disk、 文件 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Language)和…

1.如何实现统一的API前缀-web组件篇

文章目录 1. 问题的由来2.实现原理3. 总结 1. 问题的由来 系统提供了 2 种类型的用户,分别满足对应的管理后台、用户 App 场景。 两种场景的前缀不同,分别为/admin-api/和/app-api/,都写在一个controller里面,显然比较混乱。分开…

storm安装手册及笔记

图解Storm相关概念 图解storm的并发机制 安装Storm的步骤 1、安装一个zookeeper集群 2、上传storm的安装包,解压 3、修改配置文件storm.yaml #所使用的zookeeper集群主机 storm.zookeeper.servers: - "weekend05" - "weekend06"…

亚马逊 JDK下载地址

下载地址 https://docs.aws.amazon.com/corretto/选择版本 选择操作系统 比如 windows64 位 可以选择安装包或者解压版本 msi 的为安装版 zip 的为解压版

微积分第一章函数与极限

1.正反三角函数的导数 2.常用等价无穷小 3.正反三角函数转化: 1.secx1/cosx 2.cecx1/sinx 3.cotx1/tanx 4.基本数学思想: 1.有限式子与无限式子:在面对无限个式子运算时,大体思路为两个方面,第一个为放缩&#xff…

静态、友好、内在:解析C++中的这些特殊元素和对象复制的优化

W...Y的主页 😊 代码仓库分享💕 🍔前言: 前面我们学习了C中关于类与对象的许多知识点,今天我们继续学习类与对象,最后再总结一下类与对象中的一些关键字内容,以及需要注意的细节。满满的干货…

【H.264】RTP h264 码流 实例解析分析 3 : webrtc

【srs】SRS检测IBMF还是annexb 【H.264】RTP h264 码流 实例解析分析 2 : mediasoup收包 mediasoup 并没完整解析rtp包的内容,可能与mediasoup 只需要转发,不需要解码有关系。 webrtc 本身都是全的。 m98代码,先说关键: webrtc的VideoRtpDepacketizer 第一:对RTPVideoType…

年终述职技巧

一个共识 给个交代 复盘 给自己的交代 展示 给公司的交代 三维构思法 认知与成长 以己为师 萃取与迭代 以事为师 响应与前瞻 以人为师(“作者视角”转变为“观众视角”,听懂、感兴趣、认可、有收获) 六点通关术 论证价值点 工作成果&#x…

从《lc114. 二叉树展开为链表》到《lc-LCR 155二叉搜索树转化为排序的双向链表》

1 lc114. 二叉树展开为链表 1.1 描述 进阶:你可以使用原地算法(O(1) 额外空间)展开这棵树吗? 1.2 解法一: 先序遍历这棵树并且将节点加入到一个list中,随后按顺序将list中的每一个元素的left指针置换为…

AGV 导航方法总体设计与分析

导航方案设计 导航方法分为三个部分——路径规划、实时定位、轨迹纠正。 视觉定位模块 主要有三个工作任务:利用二维码定位对 AGV 初始位姿 进行矫正,保证 AGV 初始运动时其运动轨迹能够与道路平行;利用 ORBSLAM 定位能够实时的获得 AGV 在…

LeetCode热题100——链表

链表 1. 相交链表2. 反转链表3. 回文链表4. 环形链表5. 合并两个有序链表 1. 相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 // 题解:使用A/B循环遍…

Windows Server 2019安装docker服务

离线状态下,使用脚本在Windows Server 2019环境中安装docker服务。 1.安装脚本 在微软官方网站中,找到脚本并下载: 准备 Windows 操作系统容器 | Microsoft Learn 脚本地址: https://raw.githubusercontent.com/microsoft/Win…

数字化饲料工厂中常见的系统及其介绍

数字化饲料工厂是基于先进技术和数字化平台构建的现代化饲料生产系统,它包含了多种软件、硬件和基础设施系统。以下是数字化饲料工厂中常见的系统及其介绍: 一、自动化控制系统:包括PLC(可编程逻辑控制器)系统、SCADA&…

R语言 PPT 预习+复习

什么狗吧发明的结业考&#xff0c;站出来和我对线 第一章 绪论 吊码没有&#xff0c;就算考R语言特点我也不背&#xff0c;问就是叫么这没用。 第二章 R语言入门 x<-1:20 赋值语句 x 1到20在x上添加均值为0、标准差为2的正态分布噪声 y <- x rnorm (20, 0, 2) 这…

SOEM源码解析——eeprom_read(读EEPROM)

0 工具准备 1.SOEM-master-1.4.0源码1 eeprom_read函数总览 eeprom_read函数在SOEM源码的路径如下&#xff1a;test->linux->eepromtool->eepromtool.c&#xff0c;功能是读取指定字地址和长度的EEPROM数据&#xff1a; /*** brief 读取EEPROM数据* * param slave …

Vue3:一页多题答案校正及radio和checkbox混合使用

一页多题&#xff0c;类型包括单选&#xff0c;判断多选&#xff0c;涉及radio和checkbox同时使用&#xff0c;答案校正数据匹配&#xff0c;正确答案格式化&#xff0c;答案提交数据格式化&#xff0c;数据提交。 效果&#xff1a; 数据获取&#xff1a; 数据提交&#xff1a…

k8s中实现mysql主备

文章目录 一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.1 安装nfs1.2.2 部署nfs-provisioner 1.3 安装mysql1.4 备库上查看是否同步 一、k8s中实现mysql主备 1.1 环境信息 机器操作系统ipmysql版本k8s版本storageClassmaster1CentOS7.8192.168.0.20mysql5.…