Отладка тестов maven junit с отфильтрованными ресурсами? - PullRequest
4 голосов
/ 18 мая 2010

Мы используем отфильтрованные testResources в JUnit-тестах, которые обычно выполняются плагином maven surefire. То есть пом содержит раздел

  <build>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
      </testResource>
    </testResources>
    ...

Как мне запустить такие JUnit-тесты в отладчике? Если я выполняю тесты в Eclipse, тесты не выполняются, поскольку ресурсы теста не фильтруются. Если отфильтрованные тестовые ресурсы будут записаны где-то в целевой каталог, я мог бы просто использовать это как дополнительный исходный путь, но это не так. Если я пытаюсь запустить сборку maven в eclipse с помощью теста Debug As / maven, сборка не останавливается на точках останова. Есть другие идеи?

Ответы [ 2 ]

4 голосов
/ 18 мая 2010

Есть несколько вариантов. Сначала вы можете запустить тест из командной строки, указав maven.surefire.debug . По умолчанию верные тесты запускаются в разветвленной JVM, что означает, что если вы просто отладите процесс maven, вы не получите никаких остановок в контрольных точках останова. Это, наверное, то, что вы видите сейчас. Смотри также http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html

В противном случае я бы порекомендовал настроить ваш проект в среде IDE как проект maven. Если проект настроен как проект maven, фильтрация ресурсов будет выполняться автоматически перед запуском тестов. По крайней мере, так работает в Idea, и я думаю, что Eclipse делает то же самое с правильным установленным плагином maven.

Вы также можете запустить сборку maven один раз из командной строки, а затем вручную добавить каталог target / test-classes в свою конфигурацию IDE. Работает, но немного хитроумно.

1 голос
/ 18 мая 2010

Если я выполняю тесты в Eclipse, тесты не выполняются, поскольку ресурсы теста не фильтруются.

Используйте m2eclipse , и ресурсы будут фильтроваться внутри Eclipse.

...