【问题标题】:Best practices for Eclipse Feature Integration TestingEclipse 功能集成测试的最佳实践
【发布时间】:2010-10-07 01:05:42
【问题描述】:

我正在开发一个由多个 Eclipse 插件组成的 Eclipse 功能,使用 Equinox 声明式服务 (DS) 在运行时将插件连接在一起。我想添加集成测试来验证Equinox 配置。

我特别想验证一下

  • 服务组件按预期绑定在一起
  • 捆绑包已激活
  • 插件按预期共享信息(参见Edit 2

此外,我希望使用 Eclipse PDE 无头构建(如 herehere 所述)将此集成测试作为我持续集成过程的一部分。

我的问题是: 您能否推荐任何框架、工具或实践,以在我确定的限制范围内促进此类集成测试?

到目前为止,我已经找到了两条线索:

  • Spring Dynamic Modules 包含一个用于 OSGi 集成测试的框架。但是,我无法在 Eclipse 中运行一个简单的 Spring DM 测试。它抱怨“平台已经在运行”。
  • Pax Exam(前身为 Pax Drone)是另一个 OSGi 集成测试框架。

编辑:为了澄清,每个插件都有一个配置了组件定义 xml 文件的 OSGi 服务组件。这些配置文件之一中的错误不会破坏任何插件依赖项,并且很容易直到运行时才被注意到。集成测试对于检测此类故障是必要的。

编辑 2:到目前为止,我所看到的每一件事似乎都证实了 Uri 的断言(见下文),即多插件 Eclipse 功能没有在功能/产品级别进行集成测试。如果我至少可以自动验证服务组件是否正确绑定在一起,我愿意不进行全面的集成测试。

我的方法(还不行):

In a JUnit test do For each bundle/plugin of interest Get the osgi Bundle object with org.eclipse.core.runtime.Platform.getBundle() Verify that the Bundle is active with Bundle.getState() Verify that the Bundle is using the expected services with Bundle.getServicesInUse() Verify that the Bundle has registered the expected services with Bundle.getRegisteredServices()

我正在使用 Eclipse 插件测试启动配置运行我的代码,将我的 Eclipse 产品作为“运行程序”启动。当测试运行时,我可以验证捆绑包处于活动状态,但服务组件没有被激活,并且 getServicesInUse 和 getRegisteredServices 方法返回 null。我从每个捆绑包中加载了一个类,以防它是一个延迟激活问题,但这没有帮助。我还验证了所有服务组件都是“即时”组件,因此它们应该在它们的捆绑包被激活后立即被激活。 为什么 Equinox DS 没有发挥它的魔力?

【问题讨论】:

  • @Yossi Dahan:在这个问题之后,您是否找到了在 OSGi/Equinox 中实现这些“集成测试”的方法?我们现在面临同样的问题

标签: eclipse osgi integration-testing eclipse-pde


【解决方案1】:

我们基于多种方法编写了自己的小型测试执行框架: a) rcp bundletestcollector (http://rcpquickstart.com/2008/06/12/running-unit-tests-for-rcp-and-osgi-applications/) 这是由 Pascal Rapidcault 编写的,他是 RCP 的主要成员之一。它在运行的 OSGi 环境中从捆绑包中收集测试类。

b) knopflerfish 测试框架 (http://knopflerfish.org/releases/2.1.1/knopflerfish_osgi_tests_2.1.1.zip) 将测试用例注册为可由测试运行程序执行的服务。还有一个 XML 输出,遗憾的是它与 ant junit XML 格式有点不同。

通过这种方式,我们可以在单独的测试包中执行集成测试,也可以执行更接近经典单元测试并以片段形式存在于被测包中的测试(请参阅http://rcpquickstart.com/2007/06/20/unit-testing-plug-ins-with-fragments/)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2016-04-04
    • 2010-11-16
    • 2017-11-16
    • 2012-09-10
    相关资源
    最近更新 更多