У нас есть пара очень очень медленных JUnit-тестов, которые интенсивно используют mocking, включая Mocking статических функций.Одиночные тесты занимают 20-30 секунд, весь "тест mvn" занимает 25 минут.
Я хочу проанализировать, где потрачено время, но у меня мало опыта в профилировании.
Я предполагаю, чтоинициализация зависимых объектов-макетов занимает слишком много времени.
Два вопроса:
1) Как я могу быстро получить числа, на какие методы тратится время?Мне не нужен сложный инструмент для опытных пользователей, просто что-то базовое, чтобы получить цифры.(доказательство того, что мы издеваемся - зло)
2) Есть ли у вас идеи, какие недостатки дизайна могут привести к таким плохим временам?Мы тестируем компоненты JSF-поддержки, которые должны вызывать фиктивные сервисы.Возможно, в бинах bean-компонентов может быть какая-то входная проверка или нерефакторизованная бизнес-логика, но это нельзя изменить (пожалуйста, не комментируйте это ;-))
ad 2) Например, в одном тесте около 30(!) классы для подготовки к тестированию с помощью @PrepareForTest.Это не может быть хорошо, но я не могу объяснить, почему.