2016-08-30 20 views
7

Tôi muốn tạo thử nghiệm với bộ nhớ trong DB bằng cách sử dụng Spring Boot 1.4.RELEASE. Khi tôi thêm anotation @DataJpaTest để kiểm tra và thực hiện các bài kiểm tra tôi nhận được lỗi sau:Kiểm tra với anotation @DataJpaTest - EmbeddedDatabaseType là bắt buộc

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 

mùa xuân đặc tính khởi động của tôi:

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 

Dependencies:

<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> 

tôi mong rằng chú thích này sẽ thay thế DB thực của tôi bằng DB trong bộ nhớ.

Trả lời

6

giải quyết bằng cách thêm phụ thuộc vào bộ nhớ trong DB:

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

EDIT bình luận:

Trong additiona này tôi đã phải chuyển xác nhận ngủ đông trong các thử nghiệm. Added

spring.jpa.hibernate.ddl-auto = tạo thả

trong

thử nghiệm/nguồn/application.properties

+0

Bạn không cần phải làm bất cứ điều gì khác để làm cho nó công việc? Tôi đang gặp vấn đề tương tự như bạn, nhưng khi tôi thêm phụ thuộc hsqldb tôi nhận được lỗi về 'org.hsqldb.HsqlException: người dùng thiếu đặc quyền hoặc đối tượng không tìm thấy: PG_CLASS' – snowe

+2

Tôi đã có cùng. Tôi đã phải bật xác nhận ngủ đông trong các thử nghiệm: thêm spring.jpa.hibernate.ddl-auto = create-drop trong test/resources/application.properties – mrh

Các vấn đề liên quan