我有一个 SpringBoot 应用程序,我有一个配置包
@Configuration
@EnableJpaAuditing
public class PersistenceConfig {
}
但是 PersistenceConfig 不会在 PersonRepositoryTest 中被拾取
@RunWith( SpringRunner.class )
@DataJpaTest
public class PersonRepositoryTest {
// Tests ...
}
但是,如果我从< code>@DataJpaTest更改为@SpringBootTest,PersonRepositoryTest将获取配置。
我的包结构是
- main
- java
- config
PersistenceConfig.java
- domain
Person.java
- persistence
PersonRepository.java
Application.java // @SpringBootApplication
- test
- java
- persistence
PersonRepositoryTest.java
Spring Boot 1.4 中的测试改进建议使用 @DataJpaTest
观察:在Test类上执行两个注释仍然不会导入配置@SpringBootTest@DataJpaTest
问题1:当用@DataJpaTest测试持久层时,我如何正确地(Spring Boot的最佳实践方式)将配置包导入到我的测试中?
问题2:围绕使用@SpringBootTest能成为可以接受的作品吗?我知道@DataJpaTest也是一个元注释,为我的数据库提供了合理的自动配置,包括事务管理。但是如果我不需要它呢?
在@georges van post之后,我发现所有配置类也可以通过在测试中添加一行来获取:
@RunWith( SpringRunner.class )
@DataJpaTest
@ComponentScan(basePackages = "com.basepackage.config")
public class PersonRepositoryTest {
// Tests ...
}
如果有人只想要一个特定的配置类,您可以:
@RunWith( SpringRunner.class )
@DataJpaTest
@ContextConfiguration(classes=MyConfig.class)
public class PersonRepositoryTest {
// Tests ...
}
或具有以下属性的多个类:
@Context配置(类={MyConfig1.class,MyConfig2.class})
你可以试试这个:用@ComponentScan
注释 PersistenceConfig
,以便在 Spring 中启用组件扫描。
@Configuration
@EnableJpaAuditing
@ComponentScan(basePackages = "com.yourbasepackage")
public class PersistenceConfig {
}
如果没有进一步的配置,@ComponentScan
将默认扫描与PersistenceConfig
类相同的包。
然后添加@Context Configuration
注释,告诉它从PersistenceConfig.class加载其配置。
@RunWith( SpringRunner.class )
@DataJpaTest
@ContextConfiguration(classes=PersistenceConfig.class)
public class PersonRepositoryTest {
// Tests ...
}
解决方案是使用< code>@Import将您的配置导入到< code>@DataJpaTest完成的配置中。这是我对< code>@Import的理解。
@RunWith(SpringRunner.class)
@DataJpaTest
@Import(AuditConfiguration.class)
public class AuditTest {
}
使用审计启用审计的配置
@Configuration
@EnableJpaAuditing
public class AuditConfiguration {
}
文件结构 Spring配置文件 将上下文初始化事件发送到类org的侦听器实例时发生异常。springframework。网状物上下文ContextLoaderListener组织。springframework。豆。工厂BeanInitializationException:无法加载属性;嵌套的异常是java。木卫一。FileNotFoundException:无法打开类PATH资源[WEB-IN
我正在尝试测试一个JAX-RS应用程序,但我不想模拟数据,特别是因为现有的有一个方法 以下是我目前正在尝试的: 我得到以下错误 java.lang.IllegalStateException:配置错误:发现测试类[app.myResourceTest]的@bootstrapwith的多个声明:[@org.springframework.test.context.bootstrapwith(valu
问题内容: 我有以下结构: 我可以在views.py,forms.py中使用 但是我不能在myFile.py中使用它 我加了 并且当我对其进行修改时,Flask Web服务器会重新启动,但是并没有说在重新启动后app / myFile.py中发现更改。 我需要做什么才能使用 在我的python文件中。我看不到form.py有什么特别的事情。 编辑:这是我的文件: 问题答案: 人们谈论Flask中的
我使用Spring中的@datajpatest进行测试,然后在内存数据库中使用H2 as,如下所述。我也在使用Flyway进行生产。然而,一旦测试开始,FLyway就会启动并读取SQL文件。如何排除FlywayAutoConfiguration并保留其余部分,如spring文档中所述,以便让Hibernate在H2中为我创建表?
问题内容: 我是一个完整的JSP初学者。我正在尝试在JSP页面中使用。使用除in中的类以外的其他类,我需要做什么? 问题答案: 使用以下导入语句导入: 顺便说一句,要导入多个类,请使用以下格式:
问题内容: 我已经为EE开发人员安装了eclipse ide,并且收到了的导入错误 我右键单击项目文件夹->单击属性->单击Java构建路径->添加库-> JRE系统库, 但是显示的依赖项已经导入。如何导入javax.json包? 问题答案: 如果使用Maven,请将此依赖项添加到您的 对于Gradle,请将其添加到您的