В своем проекте я использую tox с тестами на нос. Используя PyCharm, мой конвейер токсинов прошел полностью, включая все тесты. Когда я выполняю tox в контейнере Ubuntu18.04 с python3, это дает мне следующую ошибку:
ImportError: Нет модуля с именем my_project
, ведущего к следующая ошибка в конце:
ОШИБКА: InvocationError для команды /.tox/py36/bin/nosetests (завершено с кодом 1)
my_project
- это имя модуля, который я тестирую, и структура каталогов выглядит так: /
, каталог root, из которого я выполняю tox
:
- my_project /
- tests /
- tox.ini
- setup.cfg
- другие файлы
Мой tox.ini выглядит следующим образом:
[tox]
envlist = py36
[testenv]
commands = python3 setup.py build
nosetests
deps = -r{toxinidir}/test-requirements.txt
Я пытался по-разному указать путь к проекту к команде Nosetests, но ничего из этого не сработало. Одна строка, которая меня интересует, находится в исходном выводе tox
:
py36 installed: my_project @ file: ///.tox/.tmp/package/1/my_project-0.4.post52. dev256143400.zip,
, что наводит меня на мысль, является ли это причиной того, что ностесты не находят my_project. Для получения подробной информации трассировка стека для ошибки выглядит следующим образом:
ERROR: Failure: ImportError (Нет модуля с именем my_project)
Traceback (последний вызов последним):
Файл "/.tox/py36/lib/python3.6/site-packages/nose/failure.py", строка 39, в runTest поднять self.exc_val.with_traceback (self.tb)
Файл » /.tox/py36/lib/python3.6/site-packages/nose/loader.py ", строка 418, в loadTestsFromName addr.filename, addr.module)
File" /.tox/py36/lib /python3.6/site-packages/nose/importer.py ", строка 47, в importFromPath return self.importFromDir (dir_path, fqname)
File" /.tox/py36/lib/python3.6 /site-packages/nose/importer.py ", строка 79, в importFromDir fh, filename, des c = find_module (часть, путь)
Файл" /usr/lib/python3.6/imp. py ", строка 297, в find_module поднять ImportError (_ERR_MSG.format (name), name = name) ImportError: Нет модуля с именем 'my_project'