Код: Выделить всё
|- src/
| |- my_package/
| |- __init__.py
| |- ...
|
|- tests/
| |- group1/
| | |- __init__.py (empty)
| | |- test_thing_1.py
| |- ...
| |- base_test_case.py
|
|- pyproject.toml
Как мне импортировать этот базовый класс в тестовый файл?
Подробнее. Используя приведенную выше структуру, вы можете запускать тесты, сначала устанавливая исходный код, а затем запуская unittest:
Код: Выделить всё
pip install -e .
python -m unittest discover tests/
Код: Выделить всё
from mypackage import MyClass
class SomeTestCase(TestBase):
# ...
Код: Выделить всё
# file: base_test_case.py
class TestBase(unittest.TestCase):
# ...
А теперь: как мне импортировать TestBase в мои тестовые файлы, чтобы тесты работают стабильно?
Что я пробовал:
Код: Выделить всё
from mypackage import MyClass
# OR:
from ..base_test_case import TestBase
# OR:
from .base_test_case import TestBase
# OR:
from base_test_case import TestBase
class SomeTestCase(TestBase):
# ...
- Первый из них работает для запуска теста внутри PyCharm, но не работает для запуска тестов обнаружения python -m unittest/
- Второй работает для запуска тестов обнаружения python -m unittest/group1/, в противном случае происходит сбой
- Третий работает для тестов обнаружения python -m unittest/ , но в противном случае происходит сбой
Подробнее здесь: https://stackoverflow.com/questions/782 ... d-shared-b