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

SpringBootTest:如何使用应用程序测试。yaml和从应用程序继承缺少的值。亚马尔

夏侯承恩
2023-03-14

我正在尝试使用注释运行集成测试:

@RunAnd(SpringRunner.class)@SpringBootTest(webUNEP=SpringBootTest.Web环境。RANDOM_PORT)@ActiveProfile({"test"})

我的问题是,应用程序通过使用spring概要文件“test”加载,我有两个配置文件:application。yaml应用测试。亚马尔

应用yaml包含:

xyz:
  list:
  - class-name: com.any.prod.ClassName1
    jndi-name: com/ws/ClassName1
  - class-name: com.any.prod.ClassName2
    jndi-name: com/ws/ClassName2

而另一个文件不包含这些值。这些估值器由我使用的库使用,而不是直接由我的应用程序使用。

当我用启用的“测试”配置文件加载测试时,application.yaml的值不会被拾取。如果我将相同的值添加到application-test.yaml它们将在绑定过程中被拾取。

这些是被拾取的属性:

xyz.list[0].class-name: com.any.prod.ClassName1 (loaded from application-test.yaml)
xyz.list[0].jndi-name: com/ws/ClassName1 (loaded from application-test.yaml)
xyz.list[1].class-name: com.any.prod.ClassName2 (loaded from application-test.yaml)
xyz.list[1].jndi-name: com/ws/ClassName2 (loaded from application-test.yaml)
xyz.list (loaded from application.yaml)

不幸的是,最后一个条目使属性验证失败。有人想过我能做些什么来解开这个谜吗?在这一点上,我对配置yaml文件的理解是错误的(至少对于测试用例来说——当我们部署应用程序时,继承似乎工作得很好)

共有1个答案

祁远
2023-03-14

您可以通过使用注释@TestPropertySource来实现这一点。

 类似资料:
  • 我有一个SpringBoot应用程序和一组应用程序。不同配置文件的yaml文件。 这些文件位于类路径中,没有额外的配置来切换它们,只需在intellij的配置“活动配置文件”部分更改配置文件。 我的一个Spring豆子依赖财产 它有一个如下所示的构造函数 如果appUrl在属性文件中不存在,这一点的全部意义就是使bean构造失败(从而导致应用程序无法启动)。 在application.yamlap

  • 我读过一些帖子,说亚马逊应用程序使用webviews相当多 (来源:https://www.quora.com/why-does-the-Amazon-app-use-webview-in-and-ios-application和https://www.teamblind.com/post/Amazon-app-webviews-cut4sn6c) 现在,我曾经在android中玩过webview

  • Maven JavaFx项目编译但从控制台运行时给出“缺少JavaFx应用程序类”错误消息 上面的方法是“创建一个新的主类,并调用扩展应用程序的类的主方法”。 然而,我仍然面临以下问题: 2.java--module-path“c:\program files\java\javafx-sdk-11.0.2\lib”--add-modules=javafx.controls,javafx.fxml,

  • 我目前正在使用OpenJDK11和OpenJFX构建一个应用程序。它编译得很好,并启动,但没有标题栏,如果我单击靠近应用程序边缘,它注册为在它后面的任何窗口上的单击。 我正在使用IntelliJ IDEA,花了一段时间才弄清楚如何将OpenJFX与它一起使用。不管怎样,以下是系统的详细信息: 我运行的是初等OS5.0Juno(基于Ubuntu18.04,一切都是GTK)IntelliJ IDEA(

  • 问题内容: 我有一个使用React的网络应用程序,我正在尝试使用Selenium RC创建一些测试。我发现,当Selenium更改字段的值时,不会正确触发事件。我知道这是一个典型的问题,正如WebDriver常见问题所证明的那样,我已经尝试了很多不同的事情,例如使用onFocus而不是onChange并使用sendKeys()和type()确保焦点进出,以编程方式调用该事件以及我可以在网上找到的任