2

OSGI 测试框架 - 一些观察。

我正在编写一个使用 OSGI 的系统。然而,所有流行的测试框架(Spring-OSGI、PaxExam)即使是最简单的测试也需要大量的人工制品。

愿望清单/目标

理想情况下,我想要一个使用 TinyBundle 组装捆绑包并将它们提供给框架的测试。然后框架将完成启动容器、部署、运行每个测试、更新 ui 以显示结果等繁重工作。

从表面上看,PAX-EXAM 似乎可以满足这一点,但它有额外的要求,我无法在 Eclipse 中解决这些要求。我的问题是:

  • 每个捆绑包都需要一个单独的项目。
  • 每个项目在 $project/meta-inf/ 中都有一个 manifest.mf。

理想情况下,我想将我所有的清单和“内部”类捆绑在测试的单独子包中,而不是将它们分散在各自的项目中。

我发现即使提供的捆绑包的内容相同,在执行测试时也无法将所有内容打包到一个项目中。但是,如果我将所有内容分成单独的项目,那么东西就可以了。

马文

我希望避免使用 maven,因为这意味着一个更复杂的系统最终需要构建、部署到 repo 中,即使在自动化的情况下,最终也会使事情变得更加缓慢。这会与我使用 Infinitest 冲突,后者会自动检测更改的类并执行正确的测试。

Eclipse 项目插件启动配置。

这种方法需要在执行 junit 测试之前选择要部署的包。当然,这仅适用于具有单独项目且每个捆绑包具有一对一映射的情况。这再次违背了我将所有测试依赖包合并到一个项目下的尝试。

怎么做到呢 ???

  • 我怎样才能做到这一点?
  • 这实际上可能吗?
  • 什么是最简单的选择?
4

1 回答 1

1

一种利用 Pax Exam 的替代方法是我们在 OSGi 测试框架(测试 OSGi 框架实现)中所做的。您可以在此处找到,而不是重复对其工作原理的整个解释:

http://opensource.luminis.net/wiki/display/OSGITEST/OSGi+testing+framework

它不使用 Maven,这里解释了编写新测试:

http://opensource.luminis.net/wiki/display/OSGITEST/Writing+a+framework+test

也许其中一些解决方案可以激发您的灵感。总而言之,有许多针对 OSGi 的测试框架(就像针对非 OSGi 的测试框架一样),但到目前为止,有任何一个框架“让其余的都过时了”。

于 2010-08-08T10:17:41.287 回答