原正常运行的unittest单元测试现报AttributeError:无TestCase属性
解决unittest模块AttributeError: 找不到TestCase属性的问题
出现这个报错,核心原因是Python没有正确导入标准库的unittest模块,大概率是以下被忽略的问题:
- 你的测试脚本文件名是
unittest.py。Python导入模块时会优先加载当前目录下的文件,导致你自己的脚本覆盖了标准库的unittest模块,自然找不到TestCase属性。 - 当前目录存在
unittest.pyc缓存文件或__pycache__文件夹,即使改了文件名,缓存仍会干扰模块导入。 - 项目中存在循环导入:比如某个模块导入了你的测试脚本,而测试脚本又导入unittest,导致模块初始化不完整。
解决步骤
- 立即修改测试脚本的文件名,比如改成
test_sum.py,绝对不能和标准库模块名重名。 - 删除当前目录下的
unittest.pyc文件和__pycache__文件夹,清除缓存。 - 排查项目中的导入关系,确保没有其他模块错误导入你的测试脚本,避免循环导入。
验证:完成上述操作后重新运行脚本,单元测试应该能正常执行。
内容的提问来源于stack exchange,提问作者Tolga Işık
相关产品推荐
相关产品推荐

