Mavenでビルドした時に発生したエラー②コンフィギュレーションクラスの指定
以下のようなエラーが出たので解決した。
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test
環境
- Spring Boot: 2.3.3.RELEASE
- STS4: 4.3.2.RELEASE
- Maven: 3.6.1
エラー内容
以下はmaven package
を実行した時に発生したエラーです。
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test
Google翻訳で訳すと、「@SpringBootConfigurationが見つかりません。テストでは、@ContextConfigurationまたは@SpringBootTest(classes = …)を使用する必要があります。」となりました。
解決方法
@SpringBootTest
にclasses
属性でコンフィギュレーションクラス(@SpringBootApplication
を付加したクラス)を指定します。
テストクラスが適切なパッケージに配置されていれば、わざわざ指定しなくても自動的に探し出して実行してくれるらしいのですがうまくいきませんでした。
そのため、下記の例のように@SpringBootTest
を使用しているクラスに対してコンフィギュレーションクラスを指定しました。
例
@ExtendWith(SpringExtension.class)
@SpringBootTest(classes = MagazineManagerApplication.class)
@AutoConfigureMockMvc
class LoginControllerTest {
// 省略
}