Pycharm Unit Testing without restructuring
我一直在使用PyCharm来开发一个子模块,以便进入其他几个项目。我有一个包含我的单元测试的Tests目录,我想从PyCharm运行它们,但是当我测试任何包含相对导入的代码时,我得到:
"ValueError:尝试相对导入超出顶级包"
我的结构大致是:
一个
    ____init____.py
    ...
乙
    ____init____.py
    ...
测试
    ____init____.py
    ...
我在B模块中测试一个使用相对导入导入A的函数:
这个线程在这里pycharm和unittesting - 构造项目引用标记测试目录,但是当我右键单击它时,我只能选择将它标记为无效的源根。
我也无法真正从相对导入到绝对导入,因为它会破坏我在其他项目中将其用作子模块的能力。任何关于如何解决这个问题的建议将非常感激。
更新:我也遇到过这个线程如何在Python模块中正确使用相对或绝对导入?而且我不是解决方案的忠实粉丝(我不希望在try / except块中有镜像导入),但它确实解决了这个问题。我仍然会欣赏更优雅的解决方案,但如果没有,那确实可以解决错误。
这里的问题是
我想你缺少的是父目录中的
1 2 3 4 5 6 | myproj/ ├── A │ └── __init__.py ├── B │ └── __init__.py └── __init__.py |