Отладка тестов Junit из проекта Maven в Eclipse - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть проект, состоящий из нескольких проектов Maven, где тесты находятся в отдельных модулях.Например:

com.xyz.abc.feature.model
com.xyz.abc.feature.model.test

Тесты - это тесты JUnit, и я запускаю их из командной строки с mvn install.Я хочу пройтись по коду в конкретном тесте, поэтому я импортировал проект в Eclipse как проект Maven.Я попытался поставить точку останова в модульном тесте, Eclipse не останавливается на этом при выполнении цели mvn install.

Как я могу отладить определенный тест в этой ситуации?

Ответы [ 3 ]

0 голосов
/ 30 сентября 2018

Просто откройте тест в Eclipse, дважды щелкните по имени теста, чтобы выбрать его (на самом деле достаточно просто щелкнуть имя теста, чтобы поместить в него курсор, или вы можете, например, выбрать его в виде структуры), затем щелкните правой кнопкой мыши и выберите Debug As> JUnit Test

0 голосов
/ 27 марта 2019

Плагин Maven SureFire запускает тест в другом процессе по умолчанию.Вероятно, поэтому это не сработало для вас.Сначала вы отключите разветвление, добавив его в pom.xml:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <forkMode>never</forkMode>
                </configuration>
            </plugin>
        </plugins>
    </build>  

Затем выполните следующие шаги для отладки:

  1. Запустите тест в режиме отладки:

Перейдите в папку, где находится ваш pom.xml.Предполагая, что вы хотите выполнить отладку до фазы установки, которая также охватывает ваш тест.Выполните эту команду

mvnDebug install

Это запустит процесс и будет ждать порт по умолчанию 8000 (ваш порт может отличаться, проверьте выводной дисплей).Мой тест показывает этот вывод:

Listening for transport dt_socket at address: 8000

Используйте удаленный отладчик в Eclipse, чтобы подключиться к процессу, запущенному на шаге 1:

Установить (или импортировать) проекты в Eclipse, если у вас его нет, затем перейти в меню «Выполнить» -> «Debug Configuration» -> «Remote Java Application» и создайте новую конфигурацию запуска.Убедитесь, что номер порта соответствует номеру, показанному в выходных данных шага 1. Нажмите «Отладка».Это подключит отладчик Eclipse к вашему процессу, начатому на шаге 1. Если в редакторе исходного кода Eclipse установлена ​​точка останова, она остановится прямо здесь.

Некоторые люди скажут, что, делая это, выдействительно отлажены Maven.Я проверил это, и этот подход работал просто отлично.Пока у вас нет исходного кода Maven в вашем проекте Eclipse, и он останавливается на точке останова, установленной в исходном коде вашего собственного проекта, это просто прекрасно работает!

0 голосов
/ 30 сентября 2018

Здесь есть два основных подхода.

Во-первых, вы можете просто выполнить тест из Eclipse и отладить его, как если бы вы отлаживали любую другую программу Java.Это, вероятно, самый простой подход, но он может быть недостаточно точным, если существуют различия между выполнением Maven и выполнением в Eclipse (например, переменные среды, порядок тестирования и т. Д.).

Второй подход заключается взапустите mvnDebug вместо mvn это необходимо mvn с открытым удаленным портом отладки.Вы можете запустить сборку, подключить Eclipse к удаленному порту отладки и отладки оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...