Я разрабатываю плагины Eclipse, и мне нужно иметь возможность автоматизировать создание и выполнение набора тестов для каждого плагина. (Использование Junit)
Тест работает в Eclipse, и я могу разбить плагины на фактический плагин и плагин фрагмента для модульного тестирования, как описано здесь, здесь и в паре мест здесь.
Однако каждый из приведенных выше подходов приводит к одной и той же проблеме: команда java ant task/commandline, которая выдает сборку или должна запускать тест, не генерирует видимых побочных эффектов и возвращает значение "13". Я пробовал все, что мог найти, и немного узнал о том, как запускается Eclipse (например: с версии 3.3 вы больше не можете использовать startup.jar - его не существует - но вы должны использовать org.eclipse.equinox.launcher). К сожалению, хотя это, по-видимому, необходимая информация, это далеко не достаточно.
Я работаю с Eclipse 3.4, Junit 4.3.1 (пакет org.junit4, но я бы скорее использовал JUnit 4.4. См. здесь.)
Итак, мой вопрос: как именно вы автоматизируете сборку и тестирование плагинов Eclipse?
Изменить: Чтобы уточнить, я хочу использовать что-то вроде ant + круиз-контроля, но я даже не могу выполнить модульные тесты для запуска вне Eclipse. Я говорю "что-то вроде", потому что есть другие технологии, которые выполняют одно и то же, и я не настолько разборчив, чтобы отказаться от решения, которое работает только потому, что оно использует Maven или Buckminster, если эти технологии значительно облегчают это.
Edit2: "Результат Java 13", упомянутый выше, по-видимому, вызван неспособностью найти сервер. Из журнала:
java.lang.RuntimeException: Application "org.eclipse.test.coretestapplication" could not be found in the registry. The applications available are: org.eclipse.equinox.app.error, com.rcpquickstart.helloworld.application.
at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:242)
at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
at org.eclipse.core.launcher.Main.main(Main.java:30)
!ENTRY org.eclipse.osgi 2 0 2008-11-04 21:02:10.514
!MESSAGE The following is a complete list of bundles which are not resolved, see the prior log entry for the root cause if it exists:
!SUBENTRY 1 org.eclipse.osgi 2 0 2008-11-04 21:02:10.515
!MESSAGE Bundle [email protected]/org.eclipse.test_3.2.0/ [34] was not resolved.
!SUBENTRY 2 org.eclipse.test 2 0 2008-11-04 21:02:10.516
!MESSAGE Missing required bundle org.apache.ant_0.0.0.
!SUBENTRY 2 org.eclipse.test 2 0 2008-11-04 21:02:10.516
!MESSAGE Missing required bundle org.eclipse.ui.ide.application_0.0.0.
!SUBENTRY 1 org.eclipse.osgi 2 0 2008-11-04 21:02:10.518
!MESSAGE Bundle [email protected]/org.eclipse.ant.optional.junit_3.2.100.jar [60] was not resolved.
!SUBENTRY 2 org.eclipse.ant.optional.junit 2 0 2008-11-04 21:02:10.519
!MESSAGE Missing host org.apache.ant_[1.6.5,2.0.0).
!SUBENTRY 2 org.eclipse.ant.optional.junit 2 0 2008-11-04 21:02:10.519
!MESSAGE Missing required bundle org.eclipse.core.runtime.compatibility_0.0.0.