我使用的是Spring Boot 2.0.4.RELEASE,并将src/test/resources/application.yml
配置为
spring:
jpa:
show-sql: false
hibernate:
dialect: org.hibernate.dialect.SQLServer2012Dialect
ddl-auto: none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
properties:
hibernate:
generate_statistics: false
show_sql: false
我有一个非常简单的测试:
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@ExtendWith(SpringExtension.class)
public class MyTest {
...
}
该测试忽略这些属性(在打印Hibernate语句时可以很容易地看到)。将相同的属性放入application.properties
文件中是可行的。
将名称更改为application-test.yml
和在配置文件上运行测试也没有帮助。
当将@DataJpaTest
注解更改为@SpringBootTest
时,它正在工作...
需要注意的是,其余属性(与我的应用程序相关且不带有spring.*
前缀的内容正在被正常读取和使用
我确实更喜欢使用YAML文件(如/src/main/resources
),而不是加载一个完整的@SpringBootTest
,仅用于纯JPA测试……还有没有其他我可以配置以使其正常工作的内容?
2条答案
按热度按时间xj3cbfub1#
这是一个缩进的问题。必须将
properties
向左移动一级。但是,如果您使用logback.xml来记录配置,也可以尝试这样做:
iqjalb3h2#
@AutoConfigureTestDatabase(Replace=AutoConfigureTestDatabase.Replace.NONE)-这会导致DataJpaTest使用与Spring Boot Main相同的配置。