依赖链org.eclipse.swtbot.eclipse.finder --> org.eclipse.ui.editors --> org.eclipse.ui.ide
包含一个可选链接:第一个包只需要通过可选导入包的第二个包org.eclipse.ui.texteditor
。这就是为什么您可以o.e.ui.ide
从 Eclipse 启动的测试运行时中删除捆绑包,并且o.e.swtbot.eclipse.finder
仍然可以工作的原因。
在正常情况下,您可以在 Tycho 的测试运行时中通过确保可选依赖项不在目标平台中来实现相同的目的:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<filters>
<filter>
<type>eclipse-plugin</type>
<id>org.eclipse.ui.ide</id>
<removeAll />
</filter>
</filters>
</configuration>
</plugin>
但这就是为什么这在您的特定情况下不起作用的原因:当您使用 UI 测试工具 ( useUIHarness=true
) 时,Tycho 无条件地将捆绑包org.eclipse.ui.ide.application
作为额外要求添加到您的测试运行时。该捆绑包对 . 有一个非可选要求org.eclipse.ui.ide
,因此使用上面的目标平台配置,您将收到“无法解决依赖关系”错误,抱怨org.eclipse.ui.ide.application
.
所以,我认为你的情况没有解决方案——但我认为这是第谷中的一个错误。SWT bot 测试在 Eclipse 中运行,因此它们也应该在 Tycho 中运行。显然,Eclipse 不需要org.eclipse.ui.ide.application
捆绑包(否则当您取消选择org.eclipse.ui.ide
捆绑包时它会停止工作),因此 Tycho 也不应该需要它。请为 Tycho 提交错误报告并附上重现问题的最小示例项目,以便我可以解决此问题。