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

如何从获取属性?Spring启动测试中的env文件

云景焕
2023-03-14

我正在尝试为我的sping-boot应用程序设置测试。在常规执行中,我从. env文件中获取一些值,这些值是我在运行配置中指定的,如下所示:

 @Value("${jdbc.url}")
 private String jdbcUrl;

但当我尝试运行最简单的测试时,它会失败,但有一个例外:

加载Application Contextjava.lang.IllegalStateException失败:加载Application Context失败………原因:org.springframework.beans.factory.BeanCreationException:创建名为“jpaConfig”的bean时出错:自动安装的依赖项注入失败;嵌套异常java.lang.IllegalArgumentException:无法解析值“${jdbc.url}”中的占位符“jdbc.url”

如何在SpringBootTest中从环境中加载属性?

这是我的测试:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {App.class})
public class TestingWebApplicationTest {

    @Test
    public void contextLoads() {
    }

}

共有1个答案

汪弘毅
2023-03-14

尝试将您的属性添加到此位置 /src/测试/资源/应用程序测试属性

在测试类上添加@ActiveProfiles("test")注释,应该会被拾取。见下面的截图;

您可以使用特定于配置文件的应用程序 -{配置文件}.属性文件

 类似资料:
  • 我有一个限定词 限定符“jdbc”是定义为 这是返回该限定符的数据源并正常工作的。 现在,我想从应用程序中读取限定符名称。属性。所以我把代码改为 其中,数据库。连接器。在我的应用程序中,name=jdbc。属性。 但当我这样做的时候,这会产生一个错误 应用程序启动失败 说明: main中的字段userService。Java语言RestTestController需要“org”类型的bean。sp

  • 在产品代码中,我可以使用以下代码来阅读aws。违约来自

  • 在产品代码中,我可以使用以下代码从和读取属性 然而,在单元测试中,相同的代码不起作用,变量始终为空。 我试图添加以下注释,但它不起作用。

  • 我在项目中使用SpringMVC。我有一些常量值存储在属性文件中,我想从属性文件中获取。问题我无法从属性文件中获取模型类中的值。它正在变为空。 我已经设置属性文件位置在servlet-context.xml 现在,通过使用@Value注释,我从属性文件中注入了值。 这是ServiceTest类。 这里是ControllerHome类: 在模型类fname是获得null而在控制器和服务类值来正确。

  • 下面是我在Spring引导应用程序中的yml文件 低于值访问是工作文件 但当我试图以下面的方式访问时,它会给出一个错误。 我检查了只有在添加“com.cloudimpl.outstack.runtime.EventRepositoryFactory”这一部分时才会出现错误。 我怎样才能解决这个问题??

  • 我需要测试使用@ConfigurationProperties bean的自动配置类。我正在使用中记录的ApplicationContextRunnerhttps://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-具有测试自动配置功能,可以加快测试速度,避免在每个变体之间启