Майкл Перо, в работе "Эффективно с устаревшим кодом", на страницах 13-14 упоминает:
A unit test, который занимает 1/10 второй для запуска - медленный unit test... Если [юнит-тесты] не работают быстро, они не являются модульными тестами.
Я понимаю, почему 1/10-я секунда слишком медленная, если у вас 30 000 тестов, так как это займет около часа. Однако, это означает, что 1/1 секунды лучше? Нет, не совсем (как это всего на 5 минут быстрее). Таким образом, жесткое правило, вероятно, не идеально.
Таким образом, при рассмотрении того, как медленный слишком медленный для модульных тестов, возможно, я должен перефразировать вопрос. Как долго слишком долго для разработчика ждать завершения пакета unit test?
Чтобы привести пример тестовых скоростей. Взгляните на несколько тайм-аутов MSTest unit test:
0.2637638 seconds
0.0589954
0.0272193
0.0209824
0.0199389
0.0088322
0.0033815
0.0028137
0.0027601
0.0008775
0.0008171
0.0007351
0.0007147
0.0005898
0.0004937
0.0004624
0.00045
0.0004397
0.0004385
0.0004376
0.0003329
Среднее значение для всех 21 из этих модульных тестов составляет 0.019785 секунд. Обратите внимание, что самый медленный тест связан с использованием Microsoft Moles для издевательства/изоляции файловой системы.
Итак, в этом примере, если мой пакет unit test вырастет до 10 000 тестов, для запуска может потребоваться более 3 минут.