项目文件夹中的__init__.py会破坏鼻子测试

时间:2013-08-11 06:40:00

标签: python testing packages nose

项目树:

.
|-- 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

有谁可以向我解释这里发生了什么?

我已经在这个主题上广泛阅读 - 通过鼻子文档/手册页和整个互联网;但是我觉得这一切都解决了,这看起来很混乱!

1 个答案:

答案 0 :(得分:2)

您的问题似乎已经回答here

  

您的顶级目录中有__init__.py。这使它成为一个   包。如果你将其删除,你的鼻子测试应该有效。

     

如果您不删除它,则必须更改导入才能导入   dir.foo,其中dir是你的目录的名称。