PyCharm UnitTest loadTestsFromName ModuleNotFoundError 解决方法

299 阅读1分钟

错误信息

重新申请开发机后,在 pycharm 中运行 unittest 遇到如下的报错(个人信息用 NAME.SUFFIX 代替):

Traceback (most recent call last):
  File "/home/NAME.SUFFIX/.local/lib/python3.9/lib/python3.9/unittest/loader.py", line 34, in testFailure
    raise self._exception
ImportError: Failed to import test module: /home/NAME
Traceback (most recent call last):
  File "/home/NAME.SUFFIX/.local/lib/python3.9/lib/python3.9/unittest/loader.py", line 154, in loadTestsFromName
    module = __import__(module_name)
ModuleNotFoundError: No module named '/home/NAME'

问题排查

通过关键词:loadTestsFromName 和 ModuleNotFoundError 查询 stackoverflow 和使用错误栈询问 chatGPT 都没能解决。

  • stackoverflow 说是缺少 init.py 文件,或者是文件结构有问题
  • chatGPT 认为是 sys path 存在问题

问题解决

在 google 搜索看到了 jetbrains 上的一个讨论 ,发现大概率是目录中的「.」导致的问题。因此尝试新建了一个 /home/NAME_SUFFIX 的目录,并将代码重新 deploy 到新路径中,再次运行单元测试就可以正常运行了。