Модуль импорта Python ImportError
Я пишу пользовательский тестовый прогон для приложения Django. В папке приложения Django у меня есть такая папка
Но когда я пытаюсь запустить тесты, я получаю сообщение об ошибке:
ERROR: AdminLoginTest (unittest.loader.ModuleImportFailure)
----------------------------------------------------------------------
ImportError: Failed to import test module: AdminLoginTest
Traceback (most recent call last):
File "D:\\python27\lib\unittest\loader.py", line 252, in _find_tests
module = self._get_module_from_name(name)
File "D:\\python27\lib\unittest\loader.py", line 230, in _get_module_f
rom_name
__import__(name)
File "D:\\selenium_tests\tests\admin_panel\AdminLoginTest.py",
line 1, in <module>
from selenium_tests.SeleniumTestCase import SeleniumTestCase
ImportError: No module named selenium_tests.SeleniumTestCase
В SeleniumTestCase я получил вот что:
class SeleniumTestCase(TestCase):
body
Я считаю, что с пакетом что-то не так с моим бегуном. Спасибо за любую помощь заранее.
1 ответ
Это не работает, потому что, если я прав, вы запускаете как скрипт (запуская unittests) файл AdminLoginTest.py
, При выполнении этого сценария интерпретатор python не может получить доступ к каталогу selenium_tests
,
Одним из решений будет использование относительного импорта, т.е.
from ..selenium_tests.SeleniumTestCase import SeleniumTestCase
Однако это не будет работать, потому что вы запускаете файл AdminLoginTest.py
как сценарий. Только если файл AdminLoginTest.py
будет импортирован как модуль, вы сможете использовать относительный импорт.
Я бы предложил изменить структуру вашего каталога, добавив юнит-тесты в качестве каталога верхнего уровня и всех других классов в качестве каталогов низкого уровня. Импорт будет работать.