Как измерить временной профиль каждого теста Джанго?

Я бы хотел измерить (стену?) время, которое требуется каждому отдельному тестовому сценарию.

Я полагаю, что завертывание test_runner в какое-то время сделает эту работу, но, прежде чем я нырну в эту кроличью нору, возможно, есть более разумный способ сделать это?

Это уже дает мне cProfile для поры, но на самом деле ничто не может показаться ужасно плохим. Я думаю, возможно, мое время может быть сосредоточено на тех, которые работают дольше всего.

time python -m cProfile -o keep-p4-serialize.profile manage.py test -v 3 -k --parallel 4

, например:

test_dependencies (api.tests.TestMetricClasses) ... ok (4.003s)
test_metrics (api.tests.TestMetricClasses) ... ok (8.329s)
test_parameters (api.tests.TestMetricClasses) ... ok (0.001s)
7 голосов | спросил John Mee 28 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 28 Sep 2016 08:55:27 +0300 2016, 08:55:27

1 ответ


0

нос имеет плагин таймера, который записывает время стены каждого отдельного выполнения теста.

https://github.com/mahmoudimus/nose-timer/tree/ведущий /nosetimer

В отчете Nose coberatura xml по умолчанию также указывается время, затраченное на каждый тест.


Для проблем, связанных с django, существует ряд простых оптимизаций, которые могут быть сделаны для увеличения времени выполнения тестов:

  • Используйте Sqlite, если вы не используете специальные функции БД
  • используйте хэш-пароль md5 (или вообще не используйте хэш-пароль)
  • отключить миграцию
  • удалить io, максимально изолировать логику, чтобы избежать создания сложных зависимостей модели

Сколько тестов в test_dependencies и test_metrics

ответил dm03514 28 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 28 Sep 2016 14:57:27 +0300 2016, 14:57:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132