[英]Spring Boot test doesn't load main application config files
我有一個 spring 啟動應用程序,我想測試一下。 對於測試,我需要加載整個 spring 上下文(就像我在啟動構建的應用程序時所做的那樣)。
我面臨的問題是,當我從maven-failsafe-plugin
運行測試時,配置文件( application.yml
和bootstrap.yml
)文件沒有加載。 如果我從 Intellij 運行測試,一切正常。
這個問題類似於我嘗試從依賴項中重用配置文件時發生的情況。 我知道配置文件的加載在最近幾年發生了變化,我似乎無法忽視我遇到的問題。
有人知道在運行 maven 測試時如何使 spring 從主資源目錄加載配置文件嗎?
因此,我在問題中解釋的 spring 的行為絕對不能改變,以允許我想做的事情。 出於可以理解的原因,我做了很多挖掘,結果證明它按預期工作。
在這種特定情況下,這成為一個問題的方式是,默認情況下,主應用程序(我們在這里嘗試測試的應用程序)由 maven 生命周期的前幾個階段創建的打包 JAR 加載。
我們需要的是通過target/classes
目錄加載應用程序,這是通過在failsafe
插件配置的<configuration>
元素中添加以下行來完成的: <classesDirectory>${project.build.outputDirectory}</classesDirectory>
。
這樣, classpath:application.yml
就可以毫無問題地從src/main/resources
目錄中解析出application.yml
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.