Моя схема каталогов выглядят следующим образомПочему относительный путь не работает в тестах python?
project\
project\setup.py
project\scripts\foo.py
project\scripts\bar.py
project\scripts\__init__.py
project\tests\test_foo.py
project\tests\__init__.py
Моего тестовый файл выглядит следующим образом
project\tests\test_fo.py
from ..scripts import foo
def test_one():
assert 0
Я получаю следующее сообщение об ошибке, когда я
cd C:\project
C:\virtualenvs\test_env\Scripts\activate
python setup.py install
python setup.py test
E ValueError: Покушении относительных импорт за пределы комплекта верхнего уровня
Что я делаю неправильно? Это мой setup.py
setup(
name = 'project',
setup_requires=['pytest-runner'],
tests_require=['pytest'],
packages = ["scripts","tests"],
package_data={
'scripts': ['*.py'],
'tests': ['*.py'],
},
)
после того, как изменить его из сценариев импорта Foo Я получаю эту ошибку (test_123) D: \ Projects \ тестовый проект> питон setup.py работает тест работает egg_info написание project.egg-инфо \ PKG-INFO написание имен верхнего уровня для project.egg-инфо \ top_level.txt пишущие dependency_links к project.egg-инфо \ dependency_links.txt чтения файла манифеста 'project.egg-info \ SOURCES.txt' файл манифеста 'project.egg-info \ SOURCES.txt' running build_ext ------------------- -------------------------------------------------- - Ran 0 тестов в 0.000s OK – user330612
@ user330612: Завтра я посмотрю. –
@ user330612: обратите внимание на ссылку «Хорошая практика» в моем ответе; там есть информация о необходимости добавления псевдонима в файл 'setup.cfg', прежде чем' pytest' используется для запуска тестов. –