はじめに
現在のプロジェクトで、 SpringBoot と Flyway を使用していますが、
テスト実行時(当プロジェクトでは Gradleを使用しているため、 ./gradlew test )に、
Flyway の Migrate が走ってしまう現象がありました。
その時の解決方法の一つになります。
どのような解決をしたのか
ご存知の方からしたら当たり前のことかもしれませんが、
SpringBoot はテスト実行時に、設定ファイルの優先順位が変わります。
具体的には、下記のような構成だとして、
/project
├── build.gradle
├── gradlew
└── src
├── main
│ ├── com
│ │ └── ...
│ └── resources
│ └── application.yml
└── test
├── com
│ └── ...
└── resources
└── application.yml
jarファイルなどで実行した場合は src/main/resources/application.yml を読み込みますが、
テスト実行時は src/test/resources/application.yml を読み込んでくれます。
この辺りは下記記事がより詳細に説明してくださってるので、そちらを参照ください。
Spring Boot - テスト時に読み込むDBを変更する
上記の特性を利用し、 src/test/resources/application.yml 側の設定ファイル(テスト時の設定ファイル)に、
Flywayを無効化する下記記述を追加しました。
spring:
flyway:
enabled: false
最後に
知っている方からしたらなんてことないことですが、知らない方からしたら若干のハマりポイントではないでしょうか。
そのため、覚書としても記事を記述させていただきました。
短いですが以上です。ありがとうございました。