Как проверить, какие тесты выполнялись во время команды управления командой manage.py Django

После завершения выполнения тестов с помощью команды manage.py test Django на консоль manage.py test только количество пройденных тестов.

 (virtualenv) G:\Project\>python manage.py test Creating test database for alias 'default'... True .. ---------------------------------------------------------------------- Ran 2 tests in 0.017s OK Destroying test database for alias 'default'... 

Есть ли способ увидеть:

  1. какие тесты были фактически выполнены
  2. из какого модуля
  3. в каком порядке

Я не нашел решения в документе.

2 Solutions collect form web for “Как проверить, какие тесты выполнялись во время команды управления командой manage.py Django”

Вы можете передать -v 2 в test команду:

 python manage.py test -v 2 

После запуска этой команды вы получите что-то вроде этого (я использую django 1.9, не стесняйтесь игнорировать материалы миграции / базы данных):

 Creating test database for alias 'default' (':memory:')... Operations to perform: Synchronize unmigrated apps: staticfiles, messages Apply all migrations: admin, contenttypes, auth, sessions Synchronizing apps without migrations: Creating tables... Running deferred SQL... Running migrations: Rendering model states... DONE Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying sessions.0001_initial... OK test_equal_hard (polls.tests.TestHard) ... ok <--------+ test_equal_simple (polls.tests.TestSimple) ... ok <--------+ | | That's your tests! >----------------------------+ 

Кстати, v означает многословие (вы также можете использовать --verbosity=2 ):

 python manage.py test --verbosity=2 

Вот выдержка из python manage.py --help :

Опции: -v VERBOSITY, –verbosity = VERBOSITY

Уровень детализации; 0 = минимальный выход, 1 = нормальный выход, 2 = подробный вывод, 3 = очень подробный вывод

Ответ Найджел велик и, безусловно, самый низкий барьер для входа. Однако вы можете получить еще лучшую обратную связь с django_nose (и это не так сложно настроить;).

Ниже приведено: BDD с Python

Во-первых: установите некоторые требования:

 pip install nose pinocchio django_nose 

Затем добавьте следующее в settings.py

 TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' NOSE_ARGS = ['--with-spec', '--spec-color'] 

Затем выполните ваши тесты в соответствии с нормальным:

 python manage.py test 

Результат должен выглядеть примерно так:

введите описание изображения здесь

Примечание . Комментарии под вашими тестами можно использовать для получения лучшего результата, чем просто имя.

например:

 def test_something(self): """Something should happen""" ... 

Выпустит «Что-то должно произойти» при запуске теста.

Дополнительные баллы: вы также можете генерировать / выводить код покрытия кода:

 pip install coverage 

Добавьте следующие значения в свой NOSE_ARGS в settings.py: '--with-coverage', '--cover-html', '--cover-package=.', '--cover-html-dir=reports/cover'

например:

 NOSE_ARGS = ['--with-spec', '--spec-color', '--with-coverage', '--cover-html', '--cover-package=.', '--cover-html-dir=reports/cover'] 

Затем вы получите красивое резюме кода при запуске python manage.py test а также аккуратный html-отчет в reports/cover

Python - лучший язык программирования в мире.