我已经检查了一些OSGI的测试解决方案,包括PAX,并快速浏览了Spring DM中的抽象TestCase,但它们似乎都需要一个jar来捆绑并捆绑相关的bundle。我希望找到一些没有这个中间步骤的东西。
想象一下能够在类路径上打包包,以便包x和y组成捆绑XY,包x和z组成捆绑XZ。 Bundle XZ不会“看到”包“y”,但可以从包含x的XY中导入服务。如果可能,或者如果存在等效的测试用例/库,是否有任何意见?
答案 0 :(得分:5)
我认为使用OPS4J的Tiny Bundles和Pax考试就是你想要的。
答案 1 :(得分:1)
如果您真的想要强制执行运行时可见性规则,那么您可能需要在OSGi环境中运行测试并支付一些性能开销。
但是,通过将类分成具有适当依赖关系的不同编译单元(例如,单独的Maven模块X,Y,Z),然后在没有OSGi的情况下运行标准测试框架(例如JUnit),可能足以强制执行编译时可见性。