测试Eclipse RCP 插件时,最好将所有测试类和资源都放在一个专用(测试(片段中。 通过这种方式,可以访问主机插件中的所有类,无论这些包是否实际导出。
但是,如果我有一个通用的测试基础设施,被许多插件使用呢?
我不能把它放到片段中,因为我不能在其他地方重用片段中的类。
片段在运行时不存在。它与其Fragment-Host
合并。
您要么需要将代码放在常规捆绑包/插件中,要么使用poxy捆绑包来公开片段的类,以便从其他片段或捆绑包访问。例如:
主机
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
标头,该标头仅由EquinoxOSGi实现理解。
因此,我的建议是将实际的测试类保留在与待测试捆绑包相对应的片段中,并将可重用的测试帮助程序放在专用的捆绑包中。