Testing OSGi单元测试没有打包包的步骤

Testing OSGi单元测试没有打包包的步骤,testing,osgi,Testing,Osgi,我已经检查了一些OSGI的测试解决方案,包括PAX,并快速查看了SpringDM中的抽象测试用例,但它们似乎都需要一个jar来打包相关的包。我希望能找到一些不需要中间步骤就能工作的东西 想象一下在类路径上打包包的能力,这样包x和y组成包XY,包x和z组成包XZ。捆绑包XZ不会“看到”包“y”,但可以从位于包x中的XY导入服务。如果这是可能的,或者如果存在等效的测试用例/库,有什么评论吗?我认为使用OPS4J和Pax考试的小捆绑包是您需要的 如果您真的想强制执行运行时可见性规则,那么您可能必须在O

我已经检查了一些OSGI的测试解决方案,包括PAX,并快速查看了SpringDM中的抽象测试用例,但它们似乎都需要一个jar来打包相关的包。我希望能找到一些不需要中间步骤就能工作的东西


想象一下在类路径上打包包的能力,这样包x和y组成包XY,包x和z组成包XZ。捆绑包XZ不会“看到”包“y”,但可以从位于包x中的XY导入服务。如果这是可能的,或者如果存在等效的测试用例/库,有什么评论吗?

我认为使用OPS4J和Pax考试的小捆绑包是您需要的


如果您真的想强制执行运行时可见性规则,那么您可能必须在OSGi环境中运行测试,并支付一些性能开销


但是,通过将类划分为具有适当依赖关系的不同编译单元(例如,单独的Maven模块X、Y、Z),然后运行一个标准测试框架(例如JUnit),可以强制实现编译时可见性没有OSGi。

Pax考试和微型捆绑包似乎仍然非常专注于以某种形式创建捆绑包(即使是在内存中)。我需要更仔细地看一看,但它们似乎仍然需要从类似类路径的源提供类文件,这与常规测试不同。许多博客似乎表明,运行pax考试的速度非常慢,而且不像人们期望的常规junit测试用例那样是瞬间的。@Alin我相信你的来自pax:)而不是libs,我还建议您只需一次下载所需的所有内容,而不是要求用户逐个获取。一种观点可能是,单元测试意味着从OSGi环境之外的单个包中测试类。如果您想测试来自多个捆绑包的服务之间的交互,它可能会将更多的分类为集成测试。@Pavel True我的错误q应该是integ而不是unit testing,或者可能只是简单的“testing”。是的,但您仍然不确定是否已导入/导出所有正确的pkg和类。。。