Мы не можем изменить встроенный Jetty, потому что он необходим для непрерывной интеграции, и мы не будем поддерживать две версии тестов JUnit (автоматический или ручной).
Решения, которые я нашел:
1 - Из maven с удаленной отладкой:
Запустите тест со следующей командой (с сайта maven):
mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" test
, а затем запустите удаленную отладку Eclipse напорт 8000. Но это решение не очень умное: так как пристань встроена, я должен вручную запустить удаленную отладку Eclipse, и ему требуется некоторая синхронизация, когда я запускаю maven из командной строки (maven не интегрирован для затмения в этом проекте).
Лучший способ, который мы наконец-то используем:
2 - из Eclipse Junit
Я просто выполняю тест Junit из Eclipse в режиме отладки, и этопросто идеально: метод запуска Jetty не требует никакой опции для debug mode
, так как именно JVM запускается в режиме выполнения или в режиме отладки.
Мне не нужно использовать WTP jetty в Eclipse, япросто нужно было определить свойства в тесте следующим образом:
${jetty.port}
и точка останова останавливается там, где я хочу.
Единственная конфигурация в Eclipse, и она не изменит наш код.