2016-03-04 4 views
1

Я пишу веб-приложение, использующее JAX-RS (Apache CXF) и JPA (Apache OpenJPA), и развернуты с использованием TomEE +. Я начал использовать Arquillian через зависимую от arquillian-tomee встроенную maven для модуляции тестирования моих служб REST.Отладчик не останавливается в точках разрыва (Arquillian, TomEE, OpenJPA Enhancer, Maven, JUnit и IntelliJ)

Когда я использую IntelliJ для запуска этапа тестирования жизненного цикла сборки Maven, все работает отлично. Он запускает энтузиаст OpenJPA на моих объектах JPA, запускает модульные тесты, и я могу успешно вызывать свои веб-службы, и они могут успешно получить доступ к базе данных.

К сожалению, если я запустил тестовую фазу в режиме отладки, все еще работает, но ни один из моих точек останова не попал. Что я должен сделать, чтобы исправить эту проблему?

Я нашел утомительное обходное решение. Я могу щелкнуть правой кнопкой мыши каждый модульный тест и запустить его в режиме отладки, а отладчик ударит точки останова ... но мне нужно вручную запустить энтузиаст OpenJPA заранее, чтобы код JPA работал.

+0

whaddaya означает «запуск тестовой фазы в режиме отладки»? Какова командная строка maven? если вы имеете в виду «-X», значит, Maven работает в режиме отладки, а не отлаживает ваше приложение. – OhadR

+0

Я не использую Maven через командную строку. Я использую Maven через IntelliJ IDEA. Я нажимаю правой кнопкой мыши на этапе тестирования жизненного цикла maven и нажимаю пункт меню Debug. –

ответ

1

Когда вы запускаете тестовую фазу в режиме отладки, это означает, что Maven работает в режиме отладки, но не отлаживает ваше приложение. Вы не можете отлаживать свое приложение через maven. Maven запускает тесты, используя plugfire-plugin, и вы не можете использовать точки останова и отладки.

+2

Спасибо за ответ, я только начал использовать IntelliJ и Maven. Чтобы исправить мою проблему, я использовал IntelliJ для создания JUnit Run/Debug Configuration и добавил openjpa: улучшайте цель перед списком «Перед запуском». Теперь я могу запускать свои тесты без утомительного ручного процесса, который я описал ранее. Благодаря! –

+0

@EdLaFave человек, вы только что спасли мое здравомыслие! Я использую Idea 14 CE, я мог видеть, что запуск теста Maven 'в debug подключился к VM/socket, но NO breakpoint action !!! Я создал конфигурацию JUnit, как вы рекомендуете, предварительно выполнив компиляцию Maven, которая сработала, спасибо! –

0

Возможны две возможности: 1) Коды/точки разрыва недоступны/не получаются с текущим контекстом. 2) Вы не используете приложение в режиме отладки.

Убедитесь, что вы отладка приложения, а не запускать его как "Run As ..."

Учитывая, что вы используете Eclipse, Run -> Debug As -> < -Ваш Target Application->

Также убедитесь, что когда бы вы не добавили точки останова, эти линии достижимы.

+0

У меня есть точка останова на первой строке единичного теста, и она срабатывает, когда я использую обходной путь, который я описал, поэтому я не беспокоюсь о способности к достижению. Я также уверен, что когда я запускаю тестовую фазу Maven, это делается с использованием режима отладки. Я запускаю его с помощью значка отладки в правой верхней части IntelliJ и запускает окно Debug. –

+0

Хорошо. И что это за линия. –

+0

Эй, пожалуйста, добавьте инструкцию log/print и добавьте контрольную точку к ней , тогда вы узнаете, выполняется ли ваш тестовый пример или нет. –

0

Я столкнулся с проблемами с отладкой IntelliJ, не догоняя точки останова. Возможно, вам удастся отключить плагин JUnit и перезапустить IDEA.

 Смежные вопросы

  • Нет связанных вопросов^_^