0
我有以下目錄結構conftest.py導入錯誤:沒有模塊名爲Foo
/home/ubuntu/test/
- Foo/
- Foo.py
- __init__.py
- Test/
- conftest.py
- __init__.py
- Foo/
- test_Foo.py
- __init__.py
Foo.py包含
class Foo(object):
def __init__(self):
pass
conftest.py包含:
import pytest
import sys
print sys.path
from Foo.Foo import Foo
@pytest.fixture(scope="session")
def foo():
return Foo()
test_Foo。 py包含:
class TestFoo():
def test___init__(self,foo):
assert True
如果我運行pytest。在測試文件夾,然後我得到一個錯誤,它無法找到該模塊美孚:
Traceback (most recent call last):
File "/home/ubuntu/pythonVirtualEnv/local/lib/python2.7/site-packages/_pytest/config.py", line 379, in _importconftest
mod = conftestpath.pyimport()
File "/home/ubuntu/pythonVirtualEnv/local/lib/python2.7/site-packages/py/_path/local.py", line 662, in pyimport
__import__(modname)
File "/home/ubuntu/pythonVirtualEnv/local/lib/python2.7/site-packages/_pytest/assertion/rewrite.py", line 212, in load_module
py.builtin.exec_(co, mod.__dict__)
File "/home/ubuntu/pythonVirtualEnv/local/lib/python2.7/site-packages/py/_builtin.py", line 221, in exec_
exec2(obj, globals, locals)
File "<string>", line 7, in exec2
File "/home/ubuntu/test/Test/conftest.py", line 6, in <module>
from Foo.Foo import Foo
ImportError: No module named Foo
ERROR: could not load /home/ubuntu/test/Test/conftest.py
是在conftest.py打印出來的sys.path中似乎包括到/ home/Ubuntu的/測試,以便它路徑應該可以找到Foo.py,對嗎?
問題是,它只有當我將conftest.py移動到下面的文件夾時才起作用。
我跑pytest 3.2.2
在'conftest.py'中,嘗試'from .Foo.Foo import Foo'。在嘗試導入'Foo'模塊之前,額外的'''將您退出'Test'目錄。 –
這是否適合你?我試過了,但它似乎不適合我。問題是,當我將conftest.py移動到下面的文件夾時,它可以正常工作。 – ddvlamin