はじめに
現在のプロジェクトで、 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
最後に
知っている方からしたらなんてことないことですが、知らない方からしたら若干のハマりポイントではないでしょうか。
そのため、覚書としても記事を記述させていただきました。
短いですが以上です。ありがとうございました。