t.me/atinfo_chat Telegram группа по автоматизации тестирования

При запуске тестов из консоли ошибка "ModuleNotFoundError: No module named 'pages'"

page-object
unittest
python
Теги: #<Tag:0x00007f21d2f52c88> #<Tag:0x00007f21d2f52ad0> #<Tag:0x00007f21d2f52738>

(Артём Кузьменко) #1

Добрый день.
Есть простейшие тесты. Сделано в духе PageObject. Тесты прекрасно стартуют и с unittest и с pytest из среды PyCharm. Но из консоли не могу запустить, постоянно вижу ошибку:

PS D:\GitHub\quotes_test\tests> python -m unittest -v MainPageTests.py
MainPageTests (unittest.loader._FailedTest) ... ERROR

======================================================================
ERROR: MainPageTests (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: MainPageTests
Traceback (most recent call last):
  File "C:\Users\Arkuz\AppData\Local\Programs\Python\Python36-32\lib\unittest\loader.py", line 153, in loadTestsFromName
    module = __import__(module_name)
  File "D:\GitHub\quotes_test\tests\MainPageTests.py", line 5, in <module>
    from pages.MainPage import MainPage
ModuleNotFoundError: No module named 'pages'
----------------------------------------------------------------------
Ran 1 test in 0.000s

Подскажите, пожалуйста, как заставить это все дело работать из консоли?

Архив с проектом - https://rghost.fun/download/de3e7e10fb8d4f3b165f47475d9d3a5f.html


(Артём Кузьменко) #2

Никто не подскажет как с этим справиться?
Вот проект этот в гите по папочкам разложен - https://github.com/arkuz/quotes_test/tree/base-page

Я пробовал всякие такие варианты, но ничего не помогло.

import sys, os
module_dir = os.path.dirname(os.path.abspath(__file__))
dir_for_add = os.path.split(module_dir)[0]
pages_path = os.path.join(dir_for_add, 'pages')
sys.path.insert(0, pages_path)
loc_path = os.path.join(dir_for_add, 'locators')
sys.path.insert(0, loc_path)

(Vatslau) #3

нет
__init__.py

в пакетах - попробуй добавить


(Артём Кузьменко) #4

Мне уже подсказывали такое решение, но не помогло.
Вот я положил в каждую папочку __init__.py
Ветка с исправлениями https://github.com/arkuz/quotes_test/tree/pytest
Но ошибка та же:

======================================================================
ERROR: MainPageTests (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: MainPageTests
Traceback (most recent call last):
  File "C:\Users\Arkuz\AppData\Local\Programs\Python\Python36-32\lib\unittest\loader.py", line 153, in loadTestsFromName
    module = __import__(module_name)
  File "D:\GitHub\quotes_test\tests\MainPageTests.py", line 4, in <module>
    from pages.MainPage import MainPage
ModuleNotFoundError: No module named 'pages'

Еще какие-то варианты?


(Артём Кузьменко) #5

Удалось запустить такой командой

python -m unittest -v tests.MainPageTests