Je la structure de répertoire suivantconftest.py ImportError: Aucun module nommé Foo
/home/ubuntu/test/
- Foo/
- Foo.py
- __init__.py
- Test/
- conftest.py
- __init__.py
- Foo/
- test_Foo.py
- __init__.py
Foo.py contient
class Foo(object):
def __init__(self):
pass
conftest.py contient:
import pytest
import sys
print sys.path
from Foo.Foo import Foo
@pytest.fixture(scope="session")
def foo():
return Foo()
test_Foo. py contient:
class TestFoo():
def test___init__(self,foo):
assert True
Si je cours pytest. dans le dossier de test puis-je obtenir une erreur qu'il ne peut pas trouver le module Foo:
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
Le sys.path qui est imprimé dans conftest.py semble inclure le/home/ubuntu/chemin de test il devrait être capable de trouver Foo.py, non? Le fait est que cela ne fonctionne que lorsque je déplace conftest.py dans le dossier ci-dessous.
Je cours pytest 3.2.2
Dans 'conftest.py', essayez' from .Foo.Foo import Foo'. Le '.' supplémentaire vous retire du répertoire' Test' avant d'essayer d'importer le module 'Foo'. –
Est-ce que cela fonctionne pour vous? J'ai essayé, mais cela ne semble pas fonctionner pour moi. La chose est que cela fonctionne quand je déplace conftest.py dans le dossier ci-dessous. – ddvlamin