Michael Feathers, в Эффективно работает с устаревшим кодом , на страницах 13-14 упоминается:
Модульный тест, для запуска которого требуется 1/10 секунды,медленный юнит-тест ... Если [юнит-тесты] не работают быстро, они не являются юнит-тестами.
Я могу понять, почему 1/10 секунды слишком медленны, если у вас есть 30 000 тестов, так как это займет около часа, чтобы бежать.Однако означает ли это, что 1/11 секунды лучше?Нет, не совсем (так как это всего на 5 минут быстрее).Таким образом, правило «жесткого быстрого», вероятно, не идеально.
Таким образом, при рассмотрении вопроса о том, насколько медленным является слишком медленным для модульных тестов, возможно, мне следует перефразировать вопрос. Как долго разработчик будет ждать завершения набора модульных тестов?
Чтобы привести пример скорости тестирования.Взгляните на несколько временных интервалов модульных тестов MSTest:
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 для проверки / изоляции файловой системы.
Таким образом, в этом примере, если мой набор модульных тестов увеличится до 10000 тестов, может занять более 3 минут.