Подтвердить что ты не робот

Почему IntelliJ занимает 20 + секунд, чтобы запустить unit test?

В Eclipse (если я правильно помню), я мог бы запустить JUnit-тест почти мгновенно практически без запуска. Это означало, что через пару секунд я смогу выполнить цикл замены кода +.

Недавно я перешел на IDEA IntelliJ, который, похоже, должен "сделать" проект перед запуском unit test, если вы изменили какой-либо исходный код с момента последнего раза. Для меня это обычно занимает 20 секунд, что слишком долго, особенно для разработки, основанной на тестах.

Я могу снять флажок "Сделать перед запуском" в Run Configuration, но затем тест выполняется без компиляции последних изменений.

Вывод предупреждений во время "make" указывает на то, что он выполняет какое-то аспектное переплетение, по крайней мере, некоторое время. Я бы предположил, что для модульного тестирования вообще не нужны аспекты.

Моя догадка заключается в том, что Eclipse постоянно компилировался в фоновом режиме каждый раз, когда вы меняли исходный файл, и делаете это быстро, не делая аспектное переплетение.

Как ускорить мои тестовые циклы codechange + в IntelliJ?

Дополнительная информация: у меня есть опция "Компиляция в фоновом режиме" в настройках компилятора. Компилятор Java является ajc в com.springsource.org.aspectj.tools-1.6.8.RELEASE.jar

4b9b3361

Ответ 1

Прагматичный ответ: переключите компилятор с "ajc" на "Eclipse" во время тестовой разработки. Не забудьте вернуть его при развертывании приложения!

Ответ 2

Параметры я активированы в IntelliJ, ускоряя выполнение тестов с 20 до 2,5 секунд:

Компилятор

  • Сделать проект автоматически
  • Компилировать независимые модули параллельно

Компилятор → Компилятор Java

  • Использовать компилятор: Eclipse
  • Не создавать никаких предупреждений

Ответ 3

Отвечая на мой собственный вопрос, насколько это возможно: (главным образом из компиляция Intellij idea tests занимает слишком много времени (по сравнению с Eclipse))

intellij не выполняет инкрементную компиляцию. Вы можете получить плагин, чтобы сделать это, но похоже, что он не работает с последней версией Intellij.