在测试 Eclipse RCP 插件时,最好将所有测试类和资源放在一个专用(测试)片段中。这样,主机插件中的所有类都可以访问,无论这些包是否实际导出。
但是,如果我有一个被许多插件使用的通用测试基础设施怎么办?
我不能把它放到一个片段中,因为我不能在其他地方重用片段中的类。
在测试 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
标头,只有 Equinox OSGi 实现才能理解。
因此,我的建议是将实际测试类留在与被测包相对应的片段中,并将可重用的测试助手放在专用包中。