デフォルトのプロパティがapplication.properties
クラスパス(src / main / resources / application.properties)のファイルに設定されているSpring-Bootアプリケーションがあります。
JUnitテストのいくつかのデフォルト設定を、test.properties
ファイル(src / test / resources / test.properties)で宣言されたプロパティで上書きしたい
私は通常、Junitテスト用の専用のConfigクラスを持っています。
package foo.bar.test;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import(CoreConfig.class)
@EnableAutoConfiguration
public class TestConfig {
}
@PropertySource("classpath:test.properties")
TestConfigクラスで使用するとうまくいくと最初に思いましたが、これらのプロパティはapplication.properties設定を上書きしません(Spring-Boot Reference Doc- 23. Externalized Configurationを参照)。
次に-Dspring.config.location=classpath:test.properties
、テストを呼び出すときに使用してみました。これは成功しました。ただし、テストの実行ごとにこのシステムプロパティを設定したくありません。したがって、私はそれをコードに入れました
@Configuration
@Import(CoreConfig.class)
@EnableAutoConfiguration
public class TestConfig {
static {
System.setProperty("spring.config.location", "classpath:test.properties");
}
}
残念ながらこれも成功しませんでした。
application.properties
JUnitテストの設定をオーバーライドする方法についてtest.properties
、私が見落としていたはずの簡単な解決策があるはずです。