2016-08-30 21 views
7

私はSpringブート1.4.RELEASEを使用してメモリDBでテストを作成します。アノテーションでテスト@DataJpaTest - EmbeddedDatabaseTypeが必要です

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'dataSource': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: EmbeddedDatabaseType is required; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: EmbeddedDatabaseType is required 

私の春のブートプロパティ:

spring.jpa.database=ORACLE 
spring.jpa.show-sql=false 
spring.jpa.hibernate.ddl-auto=validate 

spring.datasource.driverClassName=oracle.jdbc.OracleDriver 
spring.datasource.url=.. 
spring.datasource.username=.. 
spring.datasource.password=.. 

spring.datasource.max-active=20 
spring.datasource.max-idle=5 
spring.datasource.min-idle=1 
spring.datasource.initial-size=5 


spring.datasource.testWhileIdle = true 
spring.datasource.timeBetweenEvictionRunsMillis = 20000 
#spring.datasource.test-on-borrow=true 
spring.datasource.validation-query=select 1 from dual; 

spring.jpa.properties.hibernate.order_inserts=true 
spring.jpa.properties.hibernate.order_updates=true 
spring.jpa.properties.hibernate.jdbc.batch_size=100 
spring.jpa.properties.hibernate.cache.use_second_level_cache=false 

依存性:

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-thymeleaf</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-tomcat</artifactId> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>javax.el</groupId> 
    <artifactId>javax.el-api</artifactId> 
    <version>2.2.4</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-devtools</artifactId> 
    <optional>true</optional> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-actuator</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-data-jpa</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-jdbc</artifactId> 
</dependency> 
<dependency> 
    <groupId>args4j</groupId> 
    <artifactId>args4j</artifactId> 
    <version>2.33</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-remote-shell</artifactId> 
</dependency> 

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-test</artifactId> 
    <scope>test</scope> 
</dependency> 

<dependency> 
    <groupId>commons-lang</groupId> 
    <artifactId>commons-lang</artifactId> 
    <version>2.6</version> 
</dependency> 

<dependency> 
    <groupId>oracle</groupId> 
    <artifactId>ojdbc6</artifactId> 
    <version>11.2.0.3.0</version> 
</dependency> 

<dependency> 
    <groupId>com.netflix.hystrix</groupId> 
    <artifactId>hystrix-core</artifactId> 
    <version>1.4.18</version> 
</dependency> 
<dependency> 
    <groupId>org.perf4j</groupId> 
    <artifactId>perf4j</artifactId> 
    <version>0.9.16</version> 
</dependency> 
<dependency> 
    <groupId>io.reactivex</groupId> 
    <artifactId>rxjava</artifactId> 
    <version>1.0.13</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-jdbc</artifactId> 
    <version>4.2.3.RELEASE</version> 
</dependency> 

私がいた私は、テストに注釈を@DataJpaTestを追加し、テストを実行したとき、私は次のエラーを取得していますこの注釈が実際のDBをメモリDBに置き換えることを期待しています。私はテストで休止状態の検証を有効にする必要がありました。このにadditionaで

:コメントを

<dependency> 
    <groupId>org.hsqldb</groupId> 
    <artifactId>hsqldb</artifactId> 
    <scope>test</scope> 
</dependency> 

EDITを:

答えて

6

は、メモリDBでの依存関係を追加することで解決しました。

テスト/リソース/ application.properties

+0

で 追加

spring.jpa.hibernate.ddl-オート=作成・ドロップ

あなたにそれを得るために他に何もする必要はありませんでした作業?私はあなたと同じ問題を抱えていますが、hsqldbの依存関係を追加すると、 'org.hsqldb.HsqlException:ユーザーに権限がないかオブジェクトが見つかりません:PG_CLASS' – snowe

+2

私は同じことをしました。私はテストでhibernate検証を有効にする必要がありました:sp​​ring.jpa.hibernate.ddl-auto = create-drop in test/resources/application.properties – mrh

関連する問題