首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不需要重构的Pycharm单元测试

不需要重构的Pycharm单元测试
EN

Stack Overflow用户
提问于 2013-11-13 06:24:46
回答 1查看 889关注 0票数 2

我一直在使用PyCharm开发一个子模块,用于其他几个项目。我有一个包含单元测试的测试目录,我想从PyCharm运行它们,但是当我测试包含相关导入的代码时,我得到:

"ValueError:超越顶层包的相对导入尝试“

我的结构大致是:

一个

粉末冶金____init____.py

特别是..。

B

粉末冶金____init____.py

特别是..。

测试

粉末冶金____init____.py

特别是..。

在这里,我在B模块中测试一个函数,它使用相对导入来导入A:

from ..A import some_fn

这里的这个线程( pycharm and unittesting - structuring project )引用了标记测试目录的方法,但是当我右键单击它时,我只能选择将它标记为没有任何效果的源根。

我也不能真正改变相对于绝对导入,因为它将破坏我在其他项目中使用它作为子模块的能力。任何关于如何解决这个问题的建议都将不胜感激。

Update:我也遇到了这个线程How to properly use relative or absolute imports in Python modules?,我并不是这个解决方案的超级粉丝(我不希望镜像导入在try/How to properly use relative or absolute imports in Python modules?块中),但它确实解决了这个问题。我仍然希望有一个更优雅的解决方案,但如果不是,那实际上就修复了错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-18 21:44:19

这里的问题是AB是不同的包。您希望它们都是myproj包的子包。

我认为您所缺少的只是父目录中的一个__init__.py文件。允许您从B中相对导入A中的某些内容

代码语言:javascript
复制
myproj/
├── A
│   └── __init__.py
├── B
│   └── __init__.py
└── __init__.py
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19946841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档