依存関係チェーンorg.eclipse.swtbot.eclipse.finder --> org.eclipse.ui.editors --> org.eclipse.ui.ide
にはオプションのリンクが含まれています。最初のバンドルには、パッケージのオプションのインポートを介した2番目のバンドルのみが必要です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テストハーネス()を使用すると、Tychoはテストランタイムに追加要件としてuseUIHarness=true
バンドルを無条件に追加します。org.eclipse.ui.ide.application
そのバンドルにはオプションではない要件がorg.eclipse.ui.ide
あるため、上記のターゲットプラットフォーム構成では、の満たされていない制約について不平を言う「依存関係を解決できません」エラーが発生しますorg.eclipse.ui.ide.application
。
ですから、あなたの場合には解決策があるとは思いませんが、これはTychoのバグだと思います。SWTボットテストはEclipseで実行されるため、Tychoでも実行する必要があります。明らかに、Eclipseはバンドルを必要としないのでorg.eclipse.ui.ide.application
(そうでなければ、org.eclipse.ui.ide
バンドルの選択を解除したときに動作を停止していたでしょう)、Tychoもそれを必要としないはずです。Tychoのバグレポートを提出し、問題を再現する最小限のサンプルプロジェクトを添付してください。これを修正できます。