2009-12-01 36 views
4

我已经检查了OSGI的一些测试解决方案,包括PAX,并且快速浏览了Spring DM中的抽象TestCase,但它们都显示需要一个来激发并捆绑相关的bundle。我希望找到一些可以在没有这个中间步骤的情况下工作。OSGi单元测试没有步骤,捆绑软件包

想象一下,将软件包打包到类路径中的能力,以便软件包x和y构成捆绑包x,而包x和z构成捆绑包XZ。捆绑XZ不会“看到”包裹“Y”,但可以从包裹x中导入来自XY的服务。如果可能,或者存在等效的测试用例/库,有没有评论?

+0

一个观点可能是**单元测试**意味着在OSGi环境之外的单个包中测试类。如果你想测试来自多个bundle的服务之间的交互,它可能更多地被分类为**集成测试**。 – 2009-12-05 12:02:41

+0

@Pavel 真正的我错误的q应该阅读整合不单元测试,或者只是简单的“测试”。 – 2009-12-05 21:24:51

回答

5

我认为使用Pax Exam从OPS4J中使用Tiny Bundles就是您的选择。

http://wiki.ops4j.org/display/paxexam/ExamAndTinybundles

+0

Pax Exam和Tiny Bundles看起来非常专注于以某种形式创建包(即使它在内存中)。我需要更好地观察,但是他们似乎一直要求类文件不像常规测试那样从类似源的类路径中提供。许多博客似乎表明,运行pax考试测试非常缓慢,并且不像常规junit测试案例中所期望的那样虚拟。 – 2009-12-02 12:16:33

+0

@Alin 我相信你从PAX :) thans的库,我还可以建议你有一个单一的下载你需要的一切,而不是要求用户逐一抓取。 – 2009-12-05 21:26:11

1

如果你真的想强制运行时可视性规则可能比你必须运行OSGi环境内的测试,并支付一定的性能开销。

然而,通过将类与适当的依赖关系分离为不同的编译单元(例如独立的Maven模块X,Y,Z),然后运行标准测试框架(例如JUnit),而无需执行编译时可见性OSGi的。

+0

是的,但仍然不知道所有正确的pkgs和类已导入/导出... – 2009-12-06 23:27:15

相关问题