Модуль импорта 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 будет импортирован как модуль, вы сможете использовать относительный импорт.

Я бы предложил изменить структуру вашего каталога, добавив юнит-тесты в качестве каталога верхнего уровня и всех других классов в качестве каталогов низкого уровня. Импорт будет работать.

Другие вопросы по тегам