首页
学习
活动
专区
工具
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()了。

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

相关·内容

领券