Ответ Найджела отличный и определенно самый низкий барьер для входа. Тем не менее, вы можете получить еще лучшую обратную связь с 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
transaction.atomic()
для достижения тестовой изоляции ......... nTestCase может потребоваться (например, для тестирования некоторого транзакционного поведения)».