Вы сможете импортировать файлы в __init__.py
и получить их. У меня была такая настройка:
- app:
- __init__.py
- models.py
- views.py
- tests:
- __init__.py
- models.py # contain tests
- views.py # contain tests
В файле tests/__init__.py
у меня было следующее:
from app.tests.models import *
from app.tests.views import *
Что побеждает одно из преимуществ использования регулярных выражений для поиска тестов (цель носа), но работает.
Вы также можете использовать декоратор @istest
, чтобы пометить отдельный def как тест, если вы хотите избежать именования методов, соответствующих регулярному выражению. Я не пытался сделать это для модулей (py-файлов), которые также не соответствуют регулярному выражению, но я сомневаюсь, что это будет работать без вышеупомянутого импорта.
Обратите внимание, я отошел от импорта в __init__.py
и просто префикс своих методов и имен файлов с именем test_ и постфикс моих классов с помощью Test. Я считаю, что это делает код более самоописываемым, поскольку даже в классе Test могут существовать методы установки и вспомогательные методы (например, генераторы).