一种轻量级、可重用、可扩展的 OSGi 应用程序测试框架
2009-12-01 00:00:00 来源:WEB开发网Test Suite 中包含了所有的测试代码,这些代码可以是 JUnit 的测试用例或者是其他形式的测试代码。在 OSGi 启动阶段,每个 TestSuite 都会向 Test Framework Bundle 注册自己所包含的测试用例。当注册成功后,这些测试用例可以被 Test Framework Bundle 保存起来,并在之后的测试过程中被调用到。
Test Framework Bundle 是整个框架中的核心部分。它能够管理 Test Suite 所注册的测试用例。同时当用户需要执行某一测试用例时,他能找到该测试用例所对应的 Test Suite,然后执行 Test Suite 中的相应方法来运行改测试用例。最后,Test Framework Bundle 还能获得测试用例的执行结果并且输出给用户。
基于 OSGi/Eclipse 的测试框架可以有多种实现形式,在这里将介绍三种典型的实现方式,分别为基于 bundle/service 的实现,基于 fragment 的实现,以及基于 extension point + fragment 的实现。其中就框架的隔离性和便利性而言,第三种基于 extension point + fragment 的实现最为有效,但由于其需要使用 Eclipse 平台提供的 extension point 机制,其实用性受到一定的限制,只能用于 Eclipse 的 OSGi 实现 Equinox 中。
基于 bundle/service 的实现
利用服务层(service layer)提供的机制来实现模块间的松耦合,是 OSGi 平台的一大特性。在 OSGi 平台上实现 JUnit 测试框架,最直接的做法就是实现一个包含 JUnit 测试框架的 bundle,然后将相应的接口利用 service 的方式提供给 Test Bundle 的书写者。图 2 显示了这一实现的原理图。
这种方式的实现利用 OSGi 提供的松耦合机制将实际的业务逻辑代码和测试代码分离,同时又能充分利用 OSGi 的运行时环境,使得测试环境和真实运行环境一致。但是这种方式需要引入新的 bundle 来装载用户的测试用例,增加了系统的复杂度;同时使用 service 接口也有一些性能的损失。
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››扩展WebSphere Portal V6个性化功能
- ››轻量级数据交换格式 JSON轻松入门
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››扩展数据:如何为 Model 750 服务器选择 I/O 扩展...
- ››扩展 JDT 实现自动代码注释与格式化
- ››扩展 secldap 的功能以验证多个数据源
- ››扩展 JUnit4 以促进测试驱动开发
- ››轻量级系统 Lubuntu 10.04 发布
- ››扩展 JUnit 测试并行程序
- ››轻量级AOP框架-移植python的装饰器(Decorator)到C...
- ››轻量级AOP框架-移植python的装饰器(Decorator)到C...
更多精彩
赞助商链接