测试类位于其他目录,执行unittest时返回0测试用例
解决unittest拆分测试类后未执行的问题
核心原因
你的tests.py未显式导入其他文件中的测试类,unittest默认不会自动扫描未导入的测试用例;另外可能存在命名规范不符合要求的情况。
具体解决步骤
显式导入测试类
在tests.py中导入存放测试类的文件,比如测试类在test_myfeature.py里,需要添加导入语句:import unittest # 导入你的测试类 from test_myfeature import MyFeatureTestCase if __name__ == '__main__': unittest.main()确保导入路径正确,如果测试类在子目录,需要给子目录添加
__init__.py文件,将其设为可导入模块。遵循命名规范
- 测试文件名建议以
test_开头(unittest discover默认扫描这类文件),如果要用自定义命名,需在命令中用-p指定匹配规则,比如python -m unittest discover -s src -p "*_tests.py"。 - 测试方法必须以
test_为前缀,比如test_calculate,不能用驼峰式命名(如testCalculate),否则不会被识别。
- 测试文件名建议以
验证测试类本身的有效性
先单独运行测试类所在文件,确认测试能正常执行:python -m unittest src/test_myfeature.py如果这条命令能运行测试,说明问题出在
tests.py的导入或discover的配置上。调整discover命令(可选)
若不想修改tests.py,可以直接让discover扫描所有符合规范的测试文件,无需指定tests.py:python -m unittest discover -s src这条命令会自动扫描src目录下所有
test_*.py文件中的测试用例。
内容的提问来源于stack exchange,提问作者pf12345678910
相关产品推荐
相关产品推荐

