在测试Eclipse RCP插件时,最好将所有测试类和资源放在专用(测试)片段中。 这样,无论这些包是否实际导出,都可以访问主机插件中的所有类。
但是,如果我有一个常见的测试基础设施,许多插件都会使用它呢?
我不能将它放入片段中,因为我无法在其他地方重用片段内的类。
答案 0 :(得分:2)
片段在运行时不存在。 合并与Fragment-Host
。
您需要将代码放在常规的bundle / plug-in中,或者使用 poxy 包来公开可以从其他片段或bundle访问的片段类。例如:
<强>主机强>
Bundle-SymbolicName: org.example.test.util
Eclipse-ExtensibleAPI: true
<强>片段强>
Bundle-SymbolicName: org.example.test.util.impl
Export-Package: org.example.test.util.impl
Fragment-Host: org.example.test.util
但是,后一种方法使用特定于Eclipse的Extensible-API
标头,只有Equinox OSGi实现才能理解它。
因此,我的建议是将实际测试类保留在与测试中的bundle对应的片段中,并将可重用的测试助手放在专用的bundle中。