Hint make sure your test modules packages have valid python names traceback

Pytest не может импортировать модуль, в то время как Python может

Я работаю над пакетом на Python. Я использую virtualenv. Я устанавливаю путь к корню модуля в пути.pth в моем virtualenv, чтобы я мог импортировать модули пакета при разработке кода и тестировании (вопрос 1: это хороший способ сделать?). Это отлично работает (вот пример, это поведение, которое я хочу):

(VEnvTestRc) [email protected]:~/Desktop/GitFolders/rc$ python Python 2.7.12 (default, Jul 1 2016, 15:12:24) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from rc import ns >>> exit() (VEnvTestRc) [email protected]:~/Desktop/GitFolders/rc$ python tests/test_ns.py issued command: echo hello command output: hello 
(VEnvTestRc) [email protected]:~/Desktop/GitFolders/rc$ pytest =========================================== test session starts ============================================ platform linux2 -- Python 2.7.12, pytest-3.0.5, py-1.4.31, pluggy-0.4.0 rootdir: /home/zz/Desktop/GitFolders/rc, inifile: collected 0 items / 1 errors ================================================== ERRORS ================================================== ________________________________ ERROR collecting tests/test_ns.py ________________________________ ImportError while importing test module '/home/zz/Desktop/GitFolders/rc/tests/test_ns.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: tests/test_ns.py:2: in from rc import ns E ImportError: cannot import name ns . Interrupted: 1 errors during collection . ========================================= 1 error in 0.09 seconds ========================================== (VEnvTestRc) [email protected]:~/Desktop/GitFolders/rc$ which pytest /home/zz/Desktop/VirtualEnvs/VEnvTestRc/bin/pytest 

Я немного озадачен, похоже, что это указывает на ошибку импорта, но Python делает это хорошо, так почему возникает проблема с PyTest? Любое предложение по причине/исправлению (вопрос 2)? Я googled и stack-overflowed ошибка «ImportError: не могу импортировать» для PyTest, но полученные мной хиты были связаны с отсутствием пути python и средством для этого, что, похоже, не является проблемой здесь. Какие-либо предложения?

Читайте также:  Стек вызовов функций python

Источник

Ошибки PyTest

Изображение баннера

========================================================= test session starts ========================================================== platform linux — Python 3.9.5, pytest-7.0.1, pluggy-1.0.0 rootdir: /home/andrei/python/pytest/app/tests collected 0 items / 1 error ================================================================ ERRORS ================================================================ ____________________________________________________ ERROR collecting test_psum.py _____________________________________________________ ImportError while importing test module ‘/home/andrei/python/pytest/app/tests/test_psum.py’. Hint: make sure your test modules/packages have valid Python names. Traceback: ../../../../.pyenv/versions/3.9.5/lib/python3.9/importlib/__init__.py:127: in import_module return _bootstrap._gcd_import(name[level:], package, level) /home/andrei/python/pytest/qa2/tests/test_psum.py:1: in . E ModuleNotFoundError: No module named ‘psum’ ======================================================= short test summary info ======================================================== ERROR test_psum.py . Interrupted: 1 error during collection . =========================================================== 1 error in 0.06s ===========================================================

Такая ошибка может возникнуть если тест лежит в одтельной директории, например tests, и запущен оттуда же, но импорт тестируемого модуля сделан самым простым способом — просто как from mod1 import fun1

PyTest не может найти модуль, который нужно протестировать. Скорее всего поможет запуск теста из корневой директории.

python -m pytest test_something.py

cd ..
python -m pytest tests/test_something.py

NameError: name ‘pytest’ is not defined

Нужно импортировать pytest.

Источник

Pytest не может импортировать модуль, в то время как Python может

Я работаю над пакетом на Python. Я использую virtualenv. Я устанавливаю путь к корню модуля в пути.pth в моем virtualenv, чтобы я мог импортировать модули пакета при разработке кода и тестировании (вопрос 1: это хороший способ сделать?). Это отлично работает (вот пример, это поведение, которое я хочу):

(VEnvTestRc) [email protected]:~/Desktop/GitFolders/rc$ python Python 2.7.12 (default, Jul 1 2016, 15:12:24) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from rc import ns >>> exit() (VEnvTestRc) [email protected]:~/Desktop/GitFolders/rc$ python tests/test_ns.py issued command: echo hello command output: hello 
(VEnvTestRc) [email protected]:~/Desktop/GitFolders/rc$ pytest =========================================== test session starts ============================================ platform linux2 -- Python 2.7.12, pytest-3.0.5, py-1.4.31, pluggy-0.4.0 rootdir: /home/zz/Desktop/GitFolders/rc, inifile: collected 0 items / 1 errors ================================================== ERRORS ================================================== ________________________________ ERROR collecting tests/test_ns.py ________________________________ ImportError while importing test module '/home/zz/Desktop/GitFolders/rc/tests/test_ns.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: tests/test_ns.py:2: in from rc import ns E ImportError: cannot import name ns . Interrupted: 1 errors during collection . ========================================= 1 error in 0.09 seconds ========================================== (VEnvTestRc) [email protected]:~/Desktop/GitFolders/rc$ which pytest /home/zz/Desktop/VirtualEnvs/VEnvTestRc/bin/pytest 

Я немного озадачен, похоже, что это указывает на ошибку импорта, но Python делает это хорошо, так почему возникает проблема с PyTest? Любое предложение по причине/исправлению (вопрос 2)? Я googled и stack-overflowed ошибка «ImportError: не могу импортировать» для PyTest, но полученные мной хиты были связаны с отсутствием пути python и средством для этого, что, похоже, не является проблемой здесь. Какие-либо предложения?

Читайте также:  Html and css in dreamweaver

Источник

Ошибки PyTest

Изображение баннера

========================================================= test session starts ========================================================== platform linux — Python 3.9.5, pytest-7.0.1, pluggy-1.0.0 rootdir: /home/andrei/python/pytest/app/tests collected 0 items / 1 error ================================================================ ERRORS ================================================================ ____________________________________________________ ERROR collecting test_psum.py _____________________________________________________ ImportError while importing test module ‘/home/andrei/python/pytest/app/tests/test_psum.py’. Hint: make sure your test modules/packages have valid Python names. Traceback: ../../../../.pyenv/versions/3.9.5/lib/python3.9/importlib/__init__.py:127: in import_module return _bootstrap._gcd_import(name[level:], package, level) /home/andrei/python/pytest/qa2/tests/test_psum.py:1: in . E ModuleNotFoundError: No module named ‘psum’ ======================================================= short test summary info ======================================================== ERROR test_psum.py . Interrupted: 1 error during collection . =========================================================== 1 error in 0.06s ===========================================================

Такая ошибка может возникнуть если тест лежит в одтельной директории, например tests, и запущен оттуда же, но импорт тестируемого модуля сделан самым простым способом — просто как from mod1 import fun1

PyTest не может найти модуль, который нужно протестировать. Скорее всего поможет запуск теста из корневой директории.

python -m pytest test_something.py

cd ..
python -m pytest tests/test_something.py

NameError: name ‘pytest’ is not defined

Нужно импортировать pytest.

Источник

Оцените статью