首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python:如何对子目录中的所有源文件运行unittest.main()?

在Python中,要对子目录中的所有源文件运行unittest.main(),可以使用以下方法:

  1. 使用unittest库中的TestLoader和TestSuite来加载和运行测试用例。
代码语言:python
代码运行次数:0
复制
import unittest
from os.path import dirname, join, abspath
from os import walk

def get_test_suite(test_dir):
    test_loader = unittest.TestLoader()
    test_suite = unittest.TestSuite()
    for root, dirs, files in walk(test_dir):
        for file in files:
            if file.endswith('_test.py'):
                module_name = file[:-3]
                module = __import__(module_name, fromlist=[module_name])
                test_suite.addTest(test_loader.loadTestsFromModule(module))
    return test_suite

if __name__ == '__main__':
    test_dir = join(dirname(abspath(__file__)), 'subdirectory')
    unittest.TextTestRunner().run(get_test_suite(test_dir))

在这个示例中,我们首先导入了unittest库和os库中的一些函数。然后,我们定义了一个名为get_test_suite的函数,该函数接受一个参数test_dir,该参数表示包含测试文件的子目录。

在get_test_suite函数中,我们使用了os.walk来遍历子目录中的所有文件。如果文件名以“_test.py”结尾,我们就将其视为测试文件,并使用import函数将其导入到当前模块中。然后,我们使用unittest.TestLoader的loadTestsFromModule方法将测试文件添加到测试套件中。

最后,我们在主程序中调用get_test_suite函数,并使用unittest.TextTestRunner的run方法运行测试套件。

这样,我们就可以在子目录中的所有源文件中运行unittest.main()了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在Linux删除目录所有文件?

在Linux操作系统,删除目录所有文件是一项常见任务。无论是清理不需要文件还是准备删除整个目录,正确地删除目录所有文件是重要。...本文将详细介绍如何在Linux删除目录所有文件,包括使用常见命令和技巧进行操作。删除目录所有文件在Linux,有几种方法可以删除目录所有文件。...-delete 选项表示删除搜索到文件。该命令将递归地搜索目录及其子目录所有文件,并直接删除它们。...该命令将递归地搜索目录及其子目录所有文件,并使用xargs命令将它们传递给rm命令进行删除。小心使用在删除目录所有文件时,请务必小心谨慎,并确保您要删除是正确目录。...总结正确地删除目录所有文件是Linux系统常见任务之一。

16.4K40
  • 如何在Linux查看所有正在运行进程

    它能显示当前运行中进程相关信息,包括进程PID。Linux和UNIX都支持ps命令,显示所有运行中进程相关信息。ps命令能提供一份当前进程快照。如果你想状态可以自动刷新,可以使用top命令。...ps命令 输入下面的ps命令,显示所有运行进程: # ps aux | less 其中, -A:显示所有进程 a:显示终端包括其它用户所有进程 x:显示无控制终端进程 任务:查看系统每个进程...# ps -A # ps -e 任务:查看非root运行进程 # ps -U root -u root -N 任务:查看用户vivek运行进程 # ps -u vivek top命令 top命令提供了运行系统动态实时视图...在命令提示行输入top: # top 输出: 图1:top命令:显示Linux任务 按q退出,按h进入帮助。 显示进程树状图 pstree以树状显示正在运行进程。树根节点为pid或init。...pgrep能查找当前正在运行进程并列出符合条件进程ID。例如显示firefox进程ID: $ pgrep firefox 下面命令将显示进程名为sshd、所有者为root进程。

    61.4K71

    使用Python批量复制源目录所有Excel文件复制到目标目录

    一、前言 前几天在Python白银群【由恒远】问了一个Python自动化办公处理问题,这里拿出来给大家分享下。...r"D:\xx" #获取源目录所有Excel文件文件名 excel_files = glob.glob(os.path.join(source_dir, "*.xlsx")) # 将源目录所有...Excel文件复制到目标目录 for file in excel_files: shutil.copyfile(file, os.path.join(target_dir, file)) # 将库文件复制到目标目录...import shutil import os def copy_file(path): # (root,dirs,files)分别为:遍历文件夹,遍历文件夹下所有文件夹,遍历文件夹下所有文件...这篇文章主要盘点了一个Python自动化办公处理问题,文中针对该问题,给出了具体解析和代码实现,帮助粉丝顺利解决了问题。

    50920

    如何在 Linux 列出 Systemd 下所有正在运行服务

    在本指南[1],我们将演示如何在 Linux 列出 systemd 下所有正在运行服务。...在 Linux 列出 SystemD 下正在运行服务 当您运行不带任何参数 systemctl 命令时,它将显示所有加载 systemd 单元列表(阅读 systemd 文档以获取有关 systemd...(即所有已加载和正在运行服务),请运行以下命令。...此外,如果您服务器正在运行防火墙服务,该服务控制如何阻止或允许进出所选服务或端口流量,您可以使用 firewall-cmd 或 ufw 命令列出已在防火墙打开服务或端口(取决于您使用 Linux...在本指南中,我们演示了如何在 Linux 查看 systemd 下正在运行服务。我们还介绍了如何检查正在侦听端口服务以及如何查看在系统防火墙打开服务或端口。

    28120

    如何Python 列表删除所有出现元素?

    Python ,列表是一种非常常见且强大数据类型。但有时候,我们需要从一个列表删除特定元素,尤其是当这个元素出现多次时。...本文将介绍如何使用简单而又有效方法,从 Python 列表删除所有出现元素。方法一:使用循环与条件语句删除元素第一种方法是使用循环和条件语句来删除列表中所有特定元素。...具体步骤如下:遍历列表每一个元素如果该元素等于待删除元素,则删除该元素因为遍历过程删除元素会导致索引产生变化,所以我们需要使用 while 循环来避免该问题最终,所有特定元素都会从列表删除下面是代码示例...方法二:使用列表推导式删除元素第二种方法是使用列表推导式来删除 Python 列表中所有出现特定元素。...结论本文介绍了两种简单而有效方法,帮助 Python 开发人员从列表删除所有特定元素。使用循环和条件语句方法虽然简单易懂,但是性能相对较低。使用列表推导式方法则更加高效。

    12.3K30

    如何Python 终止 Windows 上运行进程?

    当深入研究Windows操作系统上Python开发领域时,无疑会出现需要终止正在运行进程情况。这种终止背后动机可能涵盖多种情况,包括无响应、过度资源消耗或仅仅是停止脚本执行必要性。...在这篇综合性文章,我们将探讨各种方法来完成使用 Python 终止 Windows 上运行进程任务。...此示例片段阐明了我们方法:我们使用“psutil.process_iter()”遍历所有正在运行进程。通过使用 'as_dict()' 方法,我们以命名元组形式获得进程信息。...方法3:释放“子流程”模块力量 Python “子进程”模块赋予我们生成新进程能力,与它们输入/输出/错误管道建立连接,并检索它们返回代码。...shell=True' 参数在 Windows 命令外壳执行命令时变得不可或缺。 结论 在这次深入探索,我们阐明了使用 Python 终止 Windows 上运行进程三种不同方法。

    49730

    如何通过命令查看python所有内置函数和内置常量

    参考链接: Pythonid函数 如何通过命令查看python所有内置函数和内置常量 举例python版本:  利用python语句输出python所有内置函数及内置常量名:     ...     'str',      'sum',      'super',      'tuple',      'type',      'vars',      'zip'] 大写字母开头是...python内置常量名,小写字母开头python内置函数名。...进一步查看内置函数用法可以:      # help(内置函数名)     help(list) ps: 本人热爱图灵,热爱本聪,热爱V神,热爱一切被梨花照过姑娘。...以下是我个人公众号,如果有技术问题可以关注我公众号来跟我交流。 同时我也会在这个公众号上每周更新我原创文章,喜欢小伙伴或者老伙计可以支持一下! 如果需要转发,麻烦注明作者。十分感谢!

    2K00

    如何通过命令查看python所有内置函数和内置常量

    参考链接: Python帮助help函数 如何通过命令查看python所有内置函数和内置常量 举例python版本:  利用python语句输出python所有内置函数及内置常量名: ...     'str',      'sum',      'super',      'tuple',      'type',      'vars',      'zip'] 大写字母开头是...python内置常量名,小写字母开头python内置函数名。...进一步查看内置函数用法可以:      # help(内置函数名)     help(list) ps: 本人热爱图灵,热爱本聪,热爱V神,热爱一切被梨花照过姑娘。...以下是我个人公众号,如果有技术问题可以关注我公众号来跟我交流。 同时我也会在这个公众号上每周更新我原创文章,喜欢小伙伴或者老伙计可以支持一下! 如果需要转发,麻烦注明作者。十分感谢!

    2.2K00

    Python如何提取文本所有数字,原来这问题这么难

    前言 你可能会遇到过各种文本处理,从文本其他所有数值,初看起来没有啥特别难度。 但是,数据经常让你"喜出望外"。...今天我们使用各种方式从文本中提取有效数值: 普通方式 正则表达式 ---- Python内置方法 为了方便对比各种实现方式,我们把待验证文本与正确结果写入 excel 表格: 为了简化调用,我封装了一系列流程...所以就是匹配多个连续数字 但是,效果上与上一个方式一样 我们注意到测试表,有些内容数值前有正负号,还有科学计数法 ·不妨在数字前面加上可能出现正负号: 为了让正则表达式更容易看,我喜欢分开定义每个区域...整个意思是 "加号或减号可能没有,也可能有一个" 没有多大改进,只是多通过了一行 看了第二行大概就能知道,我们没有考虑小数: 行4:因为正则表达式 "."...本文源码请发送 "python 正则" 获取 ---- 你学会了没有? 记得点赞,转发!谢谢支持! 推荐阅读: pandas输出表格竟然可以动起来?教你华而不实python

    4.7K30

    如何导出python安装所有模块名称和版本号到文件

    Python 模块 概念 python模块是什么?简而言之,在python,一个文件(以“.py”为后缀名文件)就叫做一个模块,每一个模块在python里都被看做是一个独立文件。...模块可以被项目中其他模块、一些脚本甚至是交互式解析器所使用,它可以被其他程序引用,从而使用该模块里函数等功能,使用Python标准库也是采用这种方法。...分类 在Python模块分为以下几种: 系统内置模块,例如:sys、time、json模块等等; 自定义模块,自定义模块是自己写模块,对某段逻辑或某些函数进行封装后供其他函数调用。...代码,可以用os.popen方法调用命令行代码,返回输出对象,然后再将此写入文件: import os installed_module_list = os.popen("pip freeze"...在另一台服务器上想部署相同包,只需运行: $ pip install -r requirements.txt 总结 到此这篇关于导出python安装所有模块名称和版本号到文件文章就介绍到这了,更多相关

    2.3K10

    unittest系统(三)unittest用例如何执行

    相关流程以及相关断言,那么很多人,都会问了unittest用例,应该如何执行呢,这次,我们就来看看,unittest用例如何执行。...那么我们到底在pycharm应该如何运行呢。 我们点击右上角 ? 选择edit Configurations......准确了执行我们所有的用例。 当然了,我们除了上面的方法还有,在终端运行。...() 假如我们想要探索执行目录下面所有的测试用例,我们应该怎么去执行呢,可以在目录这么执行 python -m unittest discover 展示如下: ?...在我们去探索执行目录下面,我们要想看到和执行单个文件一样详细信息怎么办呢。其实也很简单,直接加-v即可。 python -m unittest discover -v 执行结果如下: ?

    45910

    python unittest之加载及跳过测试方法和示例

    前言 在python unittest框架,内置了用例加载及跳过标准函数。 其加载用例通过TestLoader类实现,而跳过测试方法则通过unittest.skip()类实现。...通过该命令,unittest测试框架会尝试在当前目录及其子目录加载所有满足要求测试(注意:所有的用例模块应该以test开头进行命名,默认加载test开头模块) 下面我们一起看下其他相关命令 序号...*.py) 4 -t, --top-level-directory 顶层目录(默认同--start-directory) 例如我们指定C:\test下,匹配assert开头所有测试模块 python...-m unittest -v -s "c:\\test" -p "assert*.py" 这个命令将加载C:\test目录所有assert开头测试模块测试方法 unittest.skip跳过测试方法...() 将上述代码保存至demoskip.py,运行下述命令: python demoskip.py 结果如下: ?

    1.5K90

    测试框架-unittest-测试套件、结果输出到文件

    测试套件、结果输出到文件 目录 1、测试套件 1.1、方式一:unittest.main() 1.2、方式二:unittest.TestSuite() 1.3、方式三:unittest.defaultTestLoader...(verbosity=2) 2、执行test_Case1.py文件,运行结果: unittest.main()方法会搜索该模块下所有以test开头测试方法,并自动执行它们。...runner = unittest.TextTestRunner(verbosity=2) (4)使用run()方法运行测试套件(即运行测试套件所有用例)。...runner = unittest.TextTestRunner(verbosity=2) (3)使用run()方法运行测试套件(即运行测试套件所有用例)。...runner.run(discover) 2、结果输出到文件 执行测试用例时,想把结果输出到文件里,就可以用到Pythonopen()函数来对文件进行操作。

    68510

    python单元测试unittest

    单元测试加载方式有2种:一种是通过unittest.main()来启动单元测试测试模块;一种是添加到testsuite集合再加载所有的被测试对象,而testsuit里存放就是单元测试用例,下面分别列出了...1.1 测试模块函数: 被测模块: [python] view plaincopy #!...(self.tclass.sum(1, 2), 3)   if __name__ =='__main__':       unittest.main()   运行结果: [python...而我们通常执行unittest.main(),其实就是unittest.testprom方法,其执行功能就是上面分析三步,在第一步其传入参数是自身模块__main__;  在第二步把自身模块所有测试类测试方法提取出来...最后给出一个完整单元测试组织代码,把该代码放到单元测试用例文件同一个目录后执行该脚本,即可执行所有的测试用例文件。

    68910

    Python测试框架unittest之mock系列(二)- 断言方法、统计方法

    Python测试框架unittest之mock系列(二) 断言方法、统计方法 目录 1、断言方法 1.1、assert_not_called 1.2、assert_called 1.3、assert_called_once...call_count:返回调用次数。 call_args:获取调用时参数。 call_args_list:获取调用所有参数,结果是一个列表。...method_calls:测试对象对mock方法调用,结果是一个列表,每一项显示了方法名称和它参数。 mock_calls:测试对象对mock对象所有的调用,结果是一个列表。...2.4、call_args_list call_args_list:获取调用所有参数,结果是一个列表。 1、创建MockTest_call.py文件(创建PeopleTest测试类)。...(verbosity=2) 2、执行MockTest_call.py文件,运行结果: 调用p.name()方法2次,获取调用时所有参数('a', 'b')、('1', '2'),以列表展现。

    66830

    pytest测试框架和unittest_python性能测试框架

    目录 单元测试概述 unittest框架介绍 unittest实战 单元测试 单元测试是开发者编写一小段代码,用于经验被测代码一个很小,很明确功能是否正确,通常而言,一个单元测试是用于判断某个特定条件...() UnittestsetUp与setUpClass区别 setUp():每个测试case运行之前运行 tearDown():每个测试case运行完之后执行 setUpClass():必须使用@...classmethod 装饰器, 所有case运行之前只运行一次 tearDownClass():必须使用@classmethod装饰器, 所有case运行完之后只运行一次 unittest.skip...suite_all = unittest.TestSuite([suite,suite1]) unittest.TextTestRunner().run(suite_all) 匹配某个目录所有已...到TestSuite; 3,然后由TextTestRunner来运行TestSuite; 4,运行结果保存在TextTestResult; 5,整个过程集成在unittest.main模块; 6,

    62620

    自动化冒烟测试:Unittest vs Pytest框架

    本文讲述以下几个小知识点: 1、Unittest 如何组织冒烟用例 2、Pytest 组织冒烟测试 3、Pytest 执行unittest冒烟用例 环境准备: Python 3.x Pytest...5.x 项目目录: smoke_testing_demo test_case __init__.py test_case_with_unittest.py test_case_with_pytest.py...,封装了 5 种组织用例方法 本文主要讲解 loadTestsFromNames loadTestsFromNames 方法简介 # loader.py 该文件在python3.7已不存在,建议使用python3.64...查看使用方法 class TestLoader(object): """ 该类负责根据各种标准加载测试并将它们包装在TestSuite """ def loadTestsFromNames...test_env用例 pytest test_case_with_pytest.py -v -m test_env 运行结果 collected 2 items test_case_with_pytest.py

    69720
    领券