2014-01-29 2 views
0

У меня возник вопрос о типах упаковки Tycho и структуре проекта. В настоящее время у меня есть проект, который имеет как исходные, так и тестовые исходные каталоги, следуя стандартным соглашениям Maven, который построен с использованием типа пакета «eclipse-plugin». Это приводит к тому, что тесты не выполняются в сборке maven. Наиболее распространенным решением, которое я могу найти, является разделение источника теста на собственный проект/комплект и сборку с помощью «eclipse-test-plugin». Мой вопрос: Каковы недостатки в сохранении конвенции Maven и просто построение всего проекта как eclipse-test-plugin?Источник и источник тестирования в том же проекте с использованием Tycho

По http://wiki.eclipse.org/Tycho/Packaging_Types: «Тайхо вводит новый тип затмение тест-плагин упаковки для представления таких проектов сборки поведение является как обычные плагины Eclipse, но они обрабатываются в тест-времени.».

Это заставляет меня поверить, что на самом деле нет недостатков, кроме результирующего пакета, возможно, в зависимости от комплектов, которые необходимы только для источника теста. Тем не менее, это также относится к созданию через «eclipse-plugin» (без разделения). Можно ли с уверенностью сказать, что изменение типа упаковки в «eclipse-test-plugin» в этом случае приводит только к испытаниям, выполняемым в сборке maven без каких-либо других побочных эффектов?

ответ

1

(...) на самом деле нет недостатков, кроме результирующего пучка, возможно, в зависимости от комплектов, которые необходимы только для источника теста.

Это основная причина, по которой в Tycho имеются отдельные модули для модулей eclipse-test-plugin.

В манифесте OSGi нет областей видимости, поэтому тестовые зависимости будут загрязнять зависимости вашего продуктивного пакета. Когда вы затем установите свой пакет в Eclipse или RCP, он может вытащить тестовые пакеты, которые действительно не нужны вашему продуктивному коду. Для большинства пользователей это достаточно, чтобы разделить их код на продуктивный и тестовый комплект.

Еще одна потенциальная причина для разделения тестов - это когда вы хотите явно протестировать через OSGi API своего продуктивного пакета. В этом случае вы не будете использовать фрагмент для теста, который гарантирует, что ваши тесты могут загружать классы из вашего продуктивного пакета в соответствии с правилами видимости пакета OSGi.

+0

Благодарим вас за ответ. Я понимаю, что вы делаете, но на самом деле я не отвечаю на мой вопрос. Может быть, я должен повернуть его. Если у меня есть проект, содержащий только производственный код, какие последствия он должен упаковать как «eclipse-test-plugin», а не «eclipse-plugin»? –

+1

Вам необходимо установить для параметра [failIfNoTests] (http://www.eclipse.org/tycho/sitedfire-plugin/test-mojo.html#failIfNoTests) значение false, чтобы сделать сборку модуль пройдет, но тогда вы бы создали пакет, который можно использовать так же, как если бы он был построен с помощью eclipse-plugin. – oberlies

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