JUnit插件测试忽略目标平台

我使用了tycho-eclipse-plugin-archetype中的原型来创建一个带有工作集成测试项目的简单Eclipse插件。 除了……它没有。

当我作为“JUnit插件测试”开始任何测试时,我得到以下exception:

!ENTRY org.eclipse.osgi 2 0 2016-01-07 14:43:35.734 !MESSAGE One or more bundles are not resolved because the following root constraints are not resolved: !SUBENTRY 1 org.eclipse.osgi 2 0 2016-01-07 14:43:35.734 !MESSAGE Bundle initial@reference:file:../../../../../../../Users/MyName/.eclipse/org.eclipse.platform_4.5.1_2043537226_win32_win32_x86_64/plugins/org.eclipse.pde.junit.runtime_3.4.500.v20150423-1241.jar/ was not resolved. !SUBENTRY 2 org.eclipse.pde.junit.runtime 2 0 2016-01-07 14:43:35.734 !MESSAGE Missing required bundle org.eclipse.core.runtime_[3.11.0,4.0.0). 

(以及其他插件的类似消息。)

这很奇怪,因为我的目标平台包含org.eclipse.pde.junit.runtime 3.4.300,而不是3.4.500,这需要org.eclipse.core.runtime版本[3.3.0,4.0.0]。 测试用例的运行配置与该版本一致,并certificate“未检测到任何问题”。

因此,路径包含“/org.eclipse.platform_4.5.1”这一事实我认为它需要当前运行的Eclipse目标平台,即使工作空间和运行配置中有另一个集合。

如何更改JUnit插件测试以获取当前活动的目标平台?

它适用于Eclipse 4.4.2(Luna),因此它可能是Eclipse Mars的“特性”之一。

另外:如此处 所述 ,当Eclipse无法在工作区的目标平台中找到它们时,Eclipse会使用应用程序文件夹中的插件。 这使得当工作空间和Eclipse目标平台不同时测试失败。 解决方案是:a)使用相同的Eclipse版本进行开发和项目,或者b)使用cristall球来确定缺少哪些测试插件并将它们添加到项目的目标平台。