我需要通过创建Cucumber集成测试来测试我的Spring应用程序代码。我正在使用SpringApplicationBuilder在触发实际逻辑之前启动我的应用程序并使用以下语法来执行此操作: -
application = new SpringApplicationBuilder()
.parent(new Object[]{"classpath:file1.xml", "classpath:file2.xml"})
.profiles("abc")
.properties("name:value") [It has 5/6 (name:value) pairs here]*
.showBanner(false)
.logStartupInfo(true)
.headless(true)
.application()
.run();
我的Spring应用程序正确启动。但是,它没有获取我传递给SpringApplicationBuilder()的属性(名称,值)对的值。我尝试了以下设置: -
这些选项都不起作用,因此当应用程序启动并且代码尝试访问某些系统属性值时,它会中断。
任何想法如何解决这个问题..非常感谢所有的帮助!
答案 0 :(得分:0)
您在SpringApplicationBuilder
上配置的属性在您的应用程序Environment
中可用,而不是系统属性。如果您的代码需要系统属性,则应在启动JVM时使用System.setProperty(key, value)
或-D
参数设置它们
答案 1 :(得分:0)
示例:
@TestPropertySource(properties={"name1=value1","name2=value2"})