2017-12-05 29 views
0

임베디드 Tomee를 사용하여 Arquillian을 사용하여 지속성을 유지하면서 세션 빈을 테스트하려고합니다. 그러나 Tomee는 기본 HSQLDB 데이터 소스에 연결하려고합니다.내장형 Tomee에서 Arquillian을 사용하여 테스트 : HSQL 데이터 소스를 제거하는 방법?

AFAIK, Tomee에게 HSEEDB 데이터 소스가 주석 처리되는 tomee.xml을 사용하도록 지시해야합니다.

arquillian.xml을 사용하여 어떻게 할 수 있습니까? 아니면 다른 방법이 있습니까?

내 배포 방법 :

@Deployment 
public static WebArchive createTestArchive() { 
    MavenResolverSystem resolver = Maven.resolver(); 
    File[] files = resolver.loadPomFromFile("pom.xml").importRuntimeDependencies().resolve().withTransitivity().asFile(); 

    for (File f : files) { 
     System.out.println(f.getPath()); 
    } 

    return ShrinkWrap.create(WebArchive.class) 
      .addClasses(MyBean.class) 
      .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml") 
      .addAsManifestResource("persistence.xml", "persistence.xml") 
      .addAsLibraries(files); 
} 

내의 persistence.xml :

<persistence-unit name="oracle"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <properties> 
     <property name="hibernate.archive.autodetection" value="class" /> 
     <property name="hibernate.dialect" 
      value="org.hibernate.dialect.OracleDialect"/> 
     <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" /> 
     <property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:ORADB" /> 
     <property name="hibernate.connection.username" value="gk2" /> 
     <property name="hibernate.connection.password" value="qwerty" /> 
     <!-- <property name="hibernate.show_sql" value="true"/> --> 
     <property name="hibernate.flushMode" value="FLUSH_AUTO" /> 
     <property name="hibernate.hbm2ddl.auto" value="validate" /> 
    </properties> 
</persistence-unit> 

내 arquillian.xml : 나는 문제를 발견

<container qualifier="tomee" default="true"> 
    <configuration> 
     <property name="httpPort">-1</property> 
     <property name="stopPort">-1</property> 
     <!--Optional Container Properties --> 
     <property name="properties"> 
     </property> 
    </configuration> 
</container> 

답변

0

.

데이터 소스는

arquillian.xml 구성되어야한다

 <property name="properties"> 
      oracle = new://Resource?type=DataSource 
      oracle.JdbcUrl = jdbc:oracle:thin:@localhost:1521:ORADB 
      oracle.JdbcDriver = oracle.jdbc.driver.OracleDriver 
      oracle.UserName = username 
      oracle.Password = password    
      ... 
     </property>