Тестовый проект с pytest в другой папке

#python-3.x #flask #pytest

#python-3.x #flask #pytest

Вопрос:

Я пытаюсь добавить pytest в приложение flask. Это структура проекта.

 root
├── myapp
│   ├── app.py
│   ├── config.py
│   ├── module
│   │   ├── models.py
│   ├── pages
│   │   ├── forms.py
│   │   ├── templates
│   │   │   ├── base.html
│   │   │   ├── home.html
│   │   │   └── login.html
│   │   └── views.py
├── Pipfile
├── Pipfile.lock
├── __pycache__
└── tests
    ├── conftest.py
    └── test_pages.py
  

Приложение flask находится в myapp папке. Команда flask run выполняется нормально в этой папке. Таким образом, приложение отлично работает само по себе.

Тестовая папка находится на том же уровне, myapp что и . Если я запускаю pytest или py.test получаю эту ошибку.

 conftest.py:3: in <module>
    from app import app
E   ModuleNotFoundError: No module named 'app'
  

conftest.py

 from pytest import fixture

from app import app

@fixture
def client():
    return app.app
  

Я хочу, чтобы pytest распознавал myapp как корень проекта. Даже если они находятся в разных папках.

Комментарии:

1. Создайте пустой conftest.py файл в myapp каталоге.

2. @hoefling это приведет к загрязнению фактического приложения тестовыми файлами. Добавьте __init__.py , возможно.