当前位置: 首页 > 知识库问答 >
问题:

使用@DataJpaTest注释加载application.properties文件失败

池砚文
2023-03-14

我正在尝试在Spring Boot项目中加载应用程序属性进行测试。我也在使用@DataJpaTest注释。许多人建议使用@TestProperty tySource注释与@datajpaTest的组合,但它不是加载属性。如果我使用@SpringBooTest,它就是加载属性。

@RunWith(SpringRunner.class)
@DataJpaTest
@TestPropertySource(locations="classpath:application.properties")
public class EntityRepositoryTests {
}

我的应用程序属性文件位于主/资源/文件夹中。如果我使用@SpringBootTest(属性 = { “类路径:应用程序属性” },它正在工作,但我有

 @Autowired
    private TestEntityManager entityManager;

这未能使用Spring启动测试进行自动配置。我也尝试过@ContextConfiguration(初始值设定项=ConfigFile应用程序上下文初始化器.class),但没有运气。

共有1个答案

阳俊德
2023-03-14

对于测试,您必须使用

@ActiveProfiles("test")

以及应用程序测试属性

这些是我刚刚用过的

@RunWith(SpringRunner.class)
@DataJpaTest(showSql = false)
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@ActiveProfiles("test")
 类似资料:
  • 我有一个Spring Boot应用程序,其中包含一个Spring数据Jpa存储库。我需要运行一个单元(或组件?)围绕此存储库进行测试。我对Spring数据Jpa没有太多经验。 这是我的测试。它非常简单,我无法通过。 这是其他相关的源代码。 和 我只是想把Jpa回购协议自动连接到测试中,但我做不到。很明显,我误解了Spring Boot工作原理的一些细微差别。但即使经过了一些教程,我也无法找出我遗漏

  • 我想使用控制器和存储库创建具有Spring Boot上下文配置的完整JUnit测试。我的测试类如下所示: 我有标准的用户实体、UserController和UserRepository。我在应用程序中配置了数据源。属性,但我无法运行@SpringBootTest和@DataJpaTest-toogether。这是错误消息:

  • 问题内容: 我有一个简单的应用程序,其中我使用几个属性文件来获取其他用户编辑的内容(指向网站的链接等)。 我加载属性的类如下所示: 一些属性文件: 这可以正常工作,但是如果我对properties-file进行更改,则必须重新加载应用程序以可视化所做的任何更改。 如果我将位置移动到磁盘而不是类路径,是否可以定期或手动重新加载?我不希望更改时自动完成此操作,因为我想控制何时完成/更新。 问题答案:

  • Fof简单方便,这里引用我的代码。 第一个类,学生(存储在db中的实体): 接口,StudentDAO(用于DAO逻辑): 最后一个类,MainApp(运行应用程序): 最后,配置数据库连接的Beans文件: 该教程非常清楚,如果我尝试它,将会有一个完美的执行,没有错误,MySQL Db被正确地更新。 spring.datasource.driver-class-name=com.mysql.jd

  • 此处为完整stacktrace 有没有办法解决这个问题?我已经看到它是由@EnableFeignClients和@EnableDiscoveryClient注释引起的。

  • 但是,我希望有一个通用的类,它可以用于使用application.properties中的属性构建。这能做到吗? 我们目前正在通过以下方式手动实现此目标: