#java #eclipse #maven #tycho
#java #eclipse #maven #tycho
Вопрос:
У меня есть многомодульный проект Maven3, и я хочу запустить тестирование JUnit. Текущая структура проекта следующая:
-- plugin
|-- src
| |-- [package]
| | -- [source code]
| |
|-- src-test
| |-- [package]
| | -- [unit tests]
| |
| -- resources
Если я перемещаю src-test
папку в src
папку, тесты работают просто отлично. Но я хочу избежать изменения структуры проекта.
Я уже пробовал с <testSourceDirectory>
тегом в pom, но это не сработало.
<parent>
<groupId>xxxx</groupId>
<artifactId>xxxx</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>xxxx</groupId>
<artifactId>yyyy</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
<build>
<sourceDirectory>src</sourceDirectory>
<testSourceDirectory>src-test</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<version>0.24.0</version>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
<useUIHarness>false</useUIHarness>
<providerHint>junit4</providerHint>
</configuration>
</plugin>
</plugins>
</build>
</project>
Есть ли какое-либо решение?
Заранее благодарю вас!
Комментарии:
1. Вы должны поместить свой тестовый код в отдельный подключаемый модуль. Смотрите, например, этот учебник по Tycho .
2. Я пытаюсь запустить JUnit-тест, а не интеграционный тест. Для интеграционного теста я использую, как предлагает voggella, отдельные плагины.
3. В общем случае тесты JUnit следует помещать в отдельный подключаемый модуль, чтобы не загрязнять зависимости. В Eclipse плагины представляют собой пакеты OSGi, и вместо простого пути к классам в
MANIFEST.MF
файле указаны зависимости. Tycho разрешает зависимости через p2, что отличается от построения простого Java-приложения с Maven без Tycho.4. Спасибо за ваше предложение, но я хочу избежать изменения структуры проекта.
5. Можете ли вы показать, как вы указали зависимость JUnit? В
MANIFEST.MF
качествеRequire-Bundle
?
Ответ №1:
Мне удалось найти решение для этого. Я добавил папку src-test в build.properties плагина.