Как разрешить несовместимый импорт в Python и PytestPython

Программы на Python
Ответить
Anonymous
 Как разрешить несовместимый импорт в Python и Pytest

Сообщение Anonymous »

Я создал проект точно так же, как описано в документации Pytest Good Integration Practications, в частности, тесты вне разделения кода приложения. < /p>
Это мой макет проекта < /p>

Код: Выделить всё

.
├── pyproject.toml
├── src
│   └── basic_package
│       ├── bar.py
│       ├── __init__.py
│       └── main.py
└── tests
└── test_app.py

in main.py I Импорт из bar.py

Код: Выделить всё

from bar import baz

def main() -> str:
return baz()
в test_app.py

Код: Выделить всё

from basic_package.main import main

def test_foo():
assert main() == 'qux'
Это работает, когда я запускаю проект. Однако, если я запускаю pytest, я получаю сообщение об ошибке

ModuleNotFoundError: нет модуля с именем «bar»
В pytest это работает, если я изменю код в main.py на

Код: Выделить всё

from .bar import baz
Но если я запущу приложение, я получу ошибку ModuleNotFoundError.
Как мне решить эту проблему?
Я запускаю pytest из корневого каталога проекта


Подробнее здесь: https://stackoverflow.com/questions/793 ... and-pytest
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»