`

使用pax.exam对osgi(基于maven)进行集成测试

    博客分类:
  • OSGI
 
阅读更多

xml配置文件

就下列依赖加入xml的配置文件

<!-- test start -->
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.10</version>
   <scope>test</scope>
  </dependency>

  <dependency>
   <groupId>org.ops4j.pax.exam</groupId>
   <artifactId>pax-exam-container-native</artifactId>
   <version>3.5.0</version>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.ops4j.pax.exam</groupId>
   <artifactId>pax-exam-junit4</artifactId>
   <version>3.5.0</version>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.ops4j.pax.exam</groupId>
   <artifactId>pax-exam-link-mvn</artifactId>
   <version>3.5.0</version>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.ops4j.pax.url</groupId>
   <artifactId>pax-url-aether</artifactId>
   <version>2.0.0</version>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.apache.felix</groupId>
   <artifactId>org.apache.felix.framework</artifactId>
   <version>3.2.2</version>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-core</artifactId>
   <version>1.1.2</version>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-classic</artifactId>
   <version>1.1.2</version>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.ops4j.pax.exam</groupId>
   <artifactId>pax-exam-inject</artifactId>
   <version>3.5.0</version>
  </dependency>

  <!-- test end -->

 

  <dependency>
   <groupId>org.ow2.spec.ee</groupId>
   <artifactId>ow2-atinject-1.0-spec</artifactId>
   <version>1.0.12</version>
   <scope>test</scope>
  </dependency>
 </dependencies>

 

java 调用实例

/**
* longload
* 2014年5月20日 上午10:25:08
* version 1.0
*/
package com.sj.workflow.persistence.test;
import static org.junit.Assert.*;
import static org.ops4j.pax.exam.CoreOptions.junitBundles;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.options;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import javax.inject.Inject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.ops4j.pax.exam.Configuration;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.PaxExam;
import com.sj.common.vars.CommonVars;
import com.sj.workflow.persistence.api.WorkflowPersistence;

@RunWith(PaxExam.class)
public class WorkflowPersistenceTest {
     //@Inject
     //BundleContext bc;
     @Inject
    private WorkflowPersistence workflowPersistence;
     Logger logger= Logger.getLogger(this.getClass().getName());
    @Configuration
    public Option[] config() {

 

        return options(
           // mavenBundle("com.sj", "com.sj.mongodb.api", "0.0.1"),
           // 从网络下载
           //bundle("http://www.example.com/repository/foo-1.2.3.jar"),
                systemProperty("pax.exam.logging").value("debug"),
               
                mavenBundle("org.mongodb", "mongo-java-driver").version("2.11.4"),
                // common
                mavenBundle("com.sj", "com.sj.common.vars").version("0.0.1"),
                mavenBundle("com.sj", "com.sj.common.utils").version("0.0.1"),
                // api
                mavenBundle("com.sj", "com.sj.mongodb.api").version("0.0.1"),
                mavenBundle("com.sj","com.sj.workflow.persistence.api").version("0.0.1"),
                // impl
                mavenBundle("com.sj", "com.sj.mongodb.impl").version("0.0.1"),
                mavenBundle("com.sj", "com.sj.workflow.persistence").version("0.0.1"),
                junitBundles()

            );

    }

 

   //@Test
    public void revisionWFDefinitions() {
    try {
     logger.info("----------");
  workflowPersistence.revisionWFDefinitions("5379bf04d09bd5136c74d40f");
 } catch (Exception e) {
  
  e.printStackTrace();
 }
    }

}

分享到:
评论

相关推荐

    pax-web基本配置包

    在本文中,我们将深入探讨Pax Web的基本配置,以及如何基于Maven构建OSGI项目,并利用pax-runner插件进行二次开发。 **1. Pax Web介绍** Pax Web的核心特性包括: - 支持多种Servlet容器,如Jetty、Tomcat和...

    Java OSGI 相关资料

    4. **使用Aries或Pax Exam进行测试**:这些工具可以帮助开发者在OSGi环境中进行集成测试,确保应用在动态环境中的正确性。 ### OSGi的应用场景 1. **企业级应用**:大型分布式系统,如电信和金融领域的应用,可以...

    pax-exam-ekstazi

    **Ekstazi**,在本项目中作为Pax Exam的一个示例,是为了演示如何有效地利用Pax Exam进行深入的集成测试。Ekstazi这个名字在希腊语中意为“出神”,象征着通过Pax Exam的测试能够深入到应用程序的内部,以确保其在...

    integration-coverage:获得关于OSGi服务的集成测试覆盖率的示例项目

    在OSGi环境中,可能需要使用特定的测试框架,如Pax Exam,它支持在真实的OSGi运行时环境中执行测试。同时,需要将JaCoCo与这些测试框架集成,以便在集成测试过程中收集覆盖率数据。 7. **覆盖率报告**: 生成的...

    OSGI错误分析解决

    这些工具可以帮助我们更好地理解bundle的交互,进行单元测试和集成测试,以及自动化部署和配置。 在文件名列表中,"maven"和"osgi"表明问题可能与Maven构建过程或OSGI集成有关。Maven是Java项目管理和构建工具,...

    pax-runner-platform-felix-1.8.6

    ** Pax Runner 平台与 Felix 容器详解 ** Pax Runner 是一个开源的 Java 应用程序,它提供了...这些资源对 OSGi 开发者而言非常宝贵,不仅提供了代码实现,还支持快速构建和测试,是理解和实践 OSGi 技术的重要工具。

    pax-wicket-samples-view-franchisee-0.7.12.zip

    通过这个开源项目,开发者可以学习到如何在OSGi环境中使用Pax Wicket进行Web应用开发,同时也能掌握 Ark 工具在创建测试对象图上的最佳实践。此外,参与开源项目本身也是一种提升编程技能、学习社区协作模式和代码...

    在没有配置DNS的linux上发布ServiceMix

    ServiceMix是Apache基金会的一个企业级服务总线(ESB)项目,它基于Java和OSGi技术,提供了一个灵活的平台来集成不同系统和应用。在这个场景下,我们需要通过IP地址而非域名来设置和访问ServiceMix。 首先,我们...

    pax-runner-platform-archetype-1.0.zip

    “pax-runner-platform-archetype-1.0.zip”可能是一个基于Apache Pax Runner的Maven Archetype,Pax Runner是OSGi容器的一个实现,它允许开发者在Java环境中运行和测试OSGi服务。虽然这个压缩包的具体内容未详述,...

    resteasy-osgi-bundle:尝试将 RESTeasy 捆绑为 OSGi 捆绑包

    2. **打包调整**:为了适应OSGi环境,可能需要对RESTEasy的原始JAR进行调整,比如使用工具(如BND或Maven Bundle Plugin)将依赖项打包成一个或多个OBR(OSGi Bundle Repository)兼容的JAR。 3. **配置服务注册**...

Global site tag (gtag.js) - Google Analytics