Это моя структура каталогов:
~
|--- scratchpad
|--- manage.py
|--- my_project
|--- __init__.py
|--- settings.py
|--- urls.py
|--- wsgi.py
|--- my_app
|--- __init__.py
|--- admin.py
|--- apps.py
|--- models.py
|--- tests.py
|--- views.py
|--- migrations
|--- __init__.py
Содержимое tests.py
достаточно простое:
from django.test import TestCase
# Create your tests here.
class TrivialTestCase(TestCase):
def test_trivial(self):
self.assertTrue(True)
В этом режиме я могу без проблем запускать свои тесты:
m@mycomp:~/scratchpad$ python3 manage.py test
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
Destroying test database for alias 'default'...
НО, что если файл tests.py
станет настолько большим, что я хотел бы разбить его на множество более мелких файлов и переместить их все в отдельную папку, чтобы сохранить каталог приложения в чистоте?
~
|--- scratchpad
|--- manage.py
|--- my_project
|--- __init__.py
|--- settings.py
|--- urls.py
|--- wsgi.py
|--- my_app
|--- __init__.py
|--- admin.py
|--- apps.py
|--- models.py
|--- tests
|--- tests_trivial.py
|--- views.py
|--- migrations
|--- __init__.py
Теперь manage.py
не могу найти мои тесты!
m@mycomp:~/scratchpad$ python3 manage.py test
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
Destroying test database for alias 'default'...
Я удивлен, потому что это поведение, кажется, противоречит определенным высоко голосуемым ответам здесь , по крайней мере, если я читаю этиотвечает правильно.
Теперь я могу запустить свои тесты, если я немного изменю свою команду:
m@m-X555LJ:~/scratchpad$ python3 manage.py test my_project.my_app.tests
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
Destroying test database for alias 'default'...
Однако вводить все это каждый раз, когда я хочу выполнять тесты, - это PITA.
Есть ли способ сделать manage.py
обнаружение тестов в подпапке tests
без необходимости постоянно вводить my_project.my_app.tests
?