测试 类 放在哪里?

Where to put test classes?

测试 Eclipse RCP 插件时,最好将所有测试 类 和资源放在专用(测试)片段中。 这样可以访问主机插件中的所有 类,无论这些包是否实际导出。

但是如果我有一个被许多插件使用的通用测试基础设施怎么办?

我无法将其放入片段中,因为我无法在其他地方的片段中重复使用 类。

片段在运行时不存在。它 合并 及其 Fragment-Host

您需要将代码放置在常规 bundle/plug-in 中,或者使用 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-specific Extensible-API header 只有 Equinox OSGi 实现才能理解。

因此,我的建议是将实际测试 类 留在与 bundle-under-test 相对应的片段中,并将可重用测试助手放在专用包中。