如何运行Python项目多目录下的unittest测试用例?
运行所有测试用例的解决方案
针对你项目的目录结构,有几种方法可以一次性运行所有测试用例:
方法一:命令行指定多个发现路径
直接在命令行中通过多次调用discover子命令,分别指定根目录和子模块目录作为测试起始路径:
python -m unittest discover . "test_*.py" discover my_submodule "test_*.py"
或者用更清晰的参数形式指定起始目录和匹配模式:
python -m unittest discover -s . -p "test_*.py" discover -s my_submodule -p "test_*.py"
方法二:编写测试入口脚本
在项目根目录创建run_all_tests.py文件,通过代码手动加载两个目录下的所有测试用例:
import unittest def main(): loader = unittest.TestLoader() test_suite = unittest.TestSuite() # 加载根目录test文件夹的测试 root_tests = loader.discover('.', pattern='test_*.py') test_suite.addTests(root_tests) # 加载my_submodule下test文件夹的测试 submodule_tests = loader.discover('my_submodule', pattern='test_*.py') test_suite.addTests(submodule_tests) # 执行测试 runner = unittest.TextTestRunner(verbosity=2) runner.run(test_suite) if __name__ == '__main__': main()
运行该脚本即可执行所有测试:
python run_all_tests.py
方法三(可选):调整目录结构
如果允许修改项目布局,可将my_submodule/test目录移动到项目根目录下并重命名(比如test_submodule),避免与原test目录冲突。之后直接运行python -m unittest discover .就能自动扫描所有测试文件。
内容的提问来源于stack exchange,提问作者Guglie
相关产品推荐
相关产品推荐

