【发布时间】:2021-09-02 04:23:44
【问题描述】:
我曾经能够运行 Python 单元测试并且一切正常,但突然停止了?我将其归因于为调试器安装了 cython 加速,但我不知道如何证明这一点。我说这可能是 cython 加速,因为安装后立即进行的测试是 ModuleNotFoundError 的开始。
文件夹结构
Top_folder
- module
- submodule1
- submodule2
- __init__.py
- tests
- test1
- test2
- __init__.py
test1的内容大致如下
from module.submodule1.foo import bar
当我运行它时,按下内置的运行按钮,它对我尖叫:
ModuleNotFoundError: No module named 'module.submodule1'
我尝试过的
-
标记源根目录。我将
module标记为我的源根目录。 -
将
tests标记为我的测试根。 -
删除了
.idea文件夹。 -
使缓存失效。
-
删除我的 Conda 环境。
【问题讨论】:
-
你是如何运行测试的?是 pytest 还是测试只是常规的 Python 模块?
-
他们是
unittests。 -
Top_folder是项目根目录还是项目根目录中的目录?在最后一种情况下 - 将Top_folder标记为源根。 Ctrl/Cmd+单击from module.submodule1.foo import bar中的“模块” - 它会将您带到预期的位置吗?您还可以在测试脚本的第一行插入import module; print(module),以验证在运行时导入了正确的模块。 -
> 是否会将您带到预期的位置?嗯,我似乎无法将任何东西标记为项目根目录。我只能将东西标记为源根....有趣的是,当我在
foo中的__main__下添加一些代码时,它能够毫无问题地运行
标签: python pycharm python-unittest