pytest не может найти модуль [дубликата]
На этот вопрос уже есть ответ:
Ensuring py.test включает каталог приложения в sys.path 3 ответа Я следую заpytest хорошие практики или хотя бы я думаю, что я. Однако pytest не может найти мой модуль. Кажется, не включать текущий каталог в егоPYTHONPATH
.
Исходный файл:
def add(x, y):
return x + y
Тестовый файл:
import pytest
from junk.ook import add
def test_add_true():
assert add(1, 1) == 2
И вывод оболочки с виртуальной средой Python 3 под названием «p3».
p3; pwd
/home/usr/tmp/junk
p3; ls
total 0
0 junk/ 0 tests/
p3; ls junk
total 4.0K
4.0K ook.py 0 __init__.py
p3; ls tests
total 4.0K
4.0K test_ook.py 0 __pycache__/
p3; pytest
============================= test session starts ==============================
platform linux -- Python 3.4.5, pytest-3.4.1, py-1.5.2, pluggy-0.6.0
rootdir: /home/usr/tmp/junk, inifile:
collected 0 items / 1 errors
==================================== ERRORS ====================================
______________________ ERROR collecting tests/test_ook.py ______________________
ImportError while importing test module '/home/usr/tmp/junk/tests/test_ook.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/test_ook.py:2: in <module>
from junk.ook import add
E ImportError: No module named 'junk'
!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!!
=========================== 1 error in 0.08 seconds ============================
def test_add_true():
assert add(1, 1) == 2
Однако выполнение следующего работает нормально.
p3; python -m pytest tests/
============================= test session starts ==============================
platform linux -- Python 3.4.5, pytest-3.4.1, py-1.5.2, pluggy-0.6.0
rootdir: /home/usr/tmp/junk, inifile:
collected 1 item
tests/test_ook.py . [100%]
=========================== 1 passed in 0.02 seconds ===========================
Что я делаю не так