项目树:
.
|-- bar.py
`-- test
|-- __init__.py
`-- test_bar.py
bar.py:
def dumb_true():
return True
测试/ test_bar.py:
import bar
def test_bar_true():
assert bar.dumb_true()
我可以从项目内部或其测试目录中运行nosetests
。但是,如果我将空__init__.py
添加到项目文件夹中,我将无法再从测试目录中运行nosetests
,这对我没有任何意义。
.
|-- bar.py
|-- __init__.py <-- new, empty file, ruining everything
`-- test
|-- __init__.py
`-- test_bar.py
有谁可以向我解释这里发生了什么?
我已经在这个主题上广泛阅读 - 通过鼻子文档/手册页和整个互联网;但是我觉得这一切都解决了,这看起来很混乱!
答案 0 :(得分:2)
您的问题似乎已经回答here。
您的顶级目录中有
__init__.py
。这使它成为一个 包。如果你将其删除,你的鼻子测试应该有效。如果您不删除它,则必须更改导入才能导入 dir.foo,其中dir是你的目录的名称。