как легче отлаживать тест maven surefire (используя eclipse в качестве сервера отладки) - PullRequest
26 голосов
/ 24 сентября 2010

Я использую maven / surefire / eclipse, чтобы написать код, а затем протестировать / отладить его.

Стандартный способ сделать это - использовать свойство maven.surefire.debug. По умолчанию, когда это свойство включено, maven начинает прослушивать порт 5005, и я могу подключиться к отлаженному процессу с помощью удаленного отладчика. По завершении теста удаленный отладчик отключается от сервера.

Этот процесс включает в себя два шага при использовании в eclipse:

  1. Run Maven
  2. Подключение с использованием конфигурации удаленного запуска

Чего я хотел бы добиться, так это уменьшить его до:

  1. Run Maven

Я обнаружил, что установка свойства maven.surefire.debug для некоторых параметров удаленной отладки изменит поведение удаленной отладки. Таким образом, когда я указываю, т.е.

-Dmaven.surefire.debug = "- Xdebug -Xrunjdwp: transport = dt_socket, server = n, address = 5005"

, затем build попытается подключиться к моему процессу eclipse, прослушивающему порт 5005. Таким образом, я инвертирую стандартные роли клиент / сервер maven и eclipse.

Однако есть одна большая проблема с этим подходом. Это ничего не дает, так как после завершения сборки maven eclipse перестает слушать порт сервера. Это та часть, которую я не понимаю. Когда я подключаюсь как клиент отладки к eclipse, например, к серверу WebLogic, это позволяет мне свободно подключаться / отключаться столько раз, сколько я хочу.

Кто-нибудь знает, нормально ли это, или, может быть, мне нужно указать дополнительные параметры, чтобы упростить отладку тестов maven?

Ответы [ 4 ]

21 голосов
/ 15 марта 2012

Простой способ:

1. Open the Debug As > .. dialogue box
2. In the goal text box, give
     -DforkMode=never test
3. Run the debug project
19 голосов
/ 18 мая 2011

Задержка с опозданием, но он все еще стоит.

В конфигурации отладки Eclipse создайте конфигурацию отладки "Maven build":

Goals =-Dmaven.surefire.debug test

Profiles = myconfigprofile, weblogic

или для определенного TestSuite:

Цели = -Dmaven.surefire.debug -Dtest =com.myorg.mypkg / MyTestSuite.java test

Profiles = myconfigprofile, weblogic

NB Не помещайте реквизиты в «аргументы JRE / jvm», так как это, похоже, не делает паузу

Создание дополнительной конфигурации «Удаленного Java-приложения»:

Хост = localhost

Порт = 5005

Запуск / отладкаВаша сборка mvn остановится и прослушит 5005 по умолчанию.

При запуске вашей конфигурации удаленной отладки будет прикреплено.

См. также: http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html

2 голосов
/ 24 сентября 2010

Если вы используете m2eclipse, почему бы просто щелкнуть правой кнопкой мыши , а затем Отладка> Maven test ?

0 голосов
/ 04 сентября 2013

если вы используете Maven 2.0.8+, то это будет очень просто,

Пожалуйста, обратитесь к моему ответу.

Отладка сборки Maven в Eclipse

...