我正在开发Eclipse插件,我需要能够为每个插件自动构建和执行测试套件.(使用Junit)
测试是在Eclipse中工作,并按照上述方法我可以打破插件到实际的插件和片段插件单元测试在这里,这里和在几个地方在这里.
但是,上述每种方法都会导致相同的问题:发出构建或应触发测试的java ant task/commandline命令,不会产生可观察到的副作用,并返回值"13".我已经尝试了所有我能找到的东西,并且我已经了解了Eclipse如何启动(例如:从v3.3开始,你不能再使用startup.jar - 它不存在 - 但你应该使用org.eclipse.equinox.launcher).不幸的是,虽然这显然是必要的信息,但远远不够.
我正在使用Eclipse 3.4,Junit 4.3.1(org.junit4包,但我更喜欢使用JUnit 4.4.请看这里.)
所以,我的问题是:你如何自动化Eclipse插件的构建和测试?
编辑:为了澄清,我想使用像ant +巡航控制这样的东西,但我甚至无法让单元测试在 Eclipse之外运行.我说"类似的东西",因为有其他技术可以实现同样的目标,而且我不会那么挑剔,因为它丢弃了一个解决方案,只是因为它使用了say,Maven或Buckminster,如果这些技术使这变得更容易.
Edit2:上面提到的'Java Result 13'似乎是由于无法找到coretestrunner造成的.从日志中:
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) …Run Code Online (Sandbox Code Playgroud)