Подход 1.
Запускаем в проекте:
Теперь мы можем из IDE подключиться удаленным подключением к этому порту по протоколу jdwp.
Подход 2.
Все то же самое, но отключаем создание второго потока под тесты. Зачем это может быть нужно? Может потому что если настроить на несколько потоков, то на свободных потоках будут запускаться несколько тестов одновременно, после того как мы подключимся приложение остановится только там где стоят точки останова, все остальные тесты могут в фоне повыполняться, пока мы дебажим один тест, и мы уже вспомнив о другом должны будем все перезапускать сначала?
Подход 3.
Иногда нужно изменить порт, или что-то другое в настройках дебага, для этого указываем параметры передаваемые jvm при запуске(java [параметры]) явно:
Либо чтобы не писать много буков каждый раз при перезапуске, так:
Подход 4.
Отдебажить только один тестовый класс:
Подход 5.
Можно с версии 2.0.8 сократить количетсво букв, чтобы не указывать maven.surefire.debug, так:
В результате этих манипуляций jvm запустит наш jar проекта и будет ожидать удаленного подключения.
Запускаем в проекте:
$ mvn -Dmaven.surefire.debug testПроцесс Mojo запуститься, для тестов он запустит отдельных процесс, который будет выполняться паралельно, паралельный процесс запустится на порту 5005, и остановится ожидая подключения дебагера на этот порт.
Теперь мы можем из IDE подключиться удаленным подключением к этому порту по протоколу jdwp.
Подход 2.
Все то же самое, но отключаем создание второго потока под тесты. Зачем это может быть нужно? Может потому что если настроить на несколько потоков, то на свободных потоках будут запускаться несколько тестов одновременно, после того как мы подключимся приложение остановится только там где стоят точки останова, все остальные тесты могут в фоне повыполняться, пока мы дебажим один тест, и мы уже вспомнив о другом должны будем все перезапускать сначала?
$ mvn -Dmaven.surefire.debug -DforkCount=0 testТак мы знаем что ничего другого в фоне не выполняется.
Подход 3.
Иногда нужно изменить порт, или что-то другое в настройках дебага, для этого указываем параметры передаваемые jvm при запуске(java [параметры]) явно:
$ mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" test
Либо чтобы не писать много буков каждый раз при перезапуске, так:
$ export MAVEN_OPTS=-Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" $ mvn testТак в текущей сессии терминала мы можем не указывать maven.surefire.debug параметр.
Подход 4.
Отдебажить только один тестовый класс:
$ mvn -Dtest=MySuperClassTest -Dmaven.surefire.debug test
Подход 5.
Можно с версии 2.0.8 сократить количетсво букв, чтобы не указывать maven.surefire.debug, так:
$ mvnDebug -DforkCount=0 test
В результате этих манипуляций jvm запустит наш jar проекта и будет ожидать удаленного подключения.