新しいSpring Boot 1.4の機能でコードを更新しています。統合テストでは、新しい@DataJpaTest
注釈を使用しようとしていました。私は実行したい.sqlファイルに問題があります。統合テストだけのものと、将来の本番データベースのものがあります。spring-boot 1.4の新しい@DataJpaTestとapplication.propertiesとの関係
私のインテグレーションテストでは、/src/test/resources
ディレクトリ内の.sqlファイルとそのためのH2インメモリデータベースを使用して、@Sql
注釈を使用しています。私はmysqlデータベースを使っていますが、data-mysql.sql
というファイルが/src/main/resources
の中にあります。
インテグレーションテストを実行すると、/src/test/resources
のファイルのみが実行されていることがわかりましたが、data-mysql.sql
のファイルも実行されています。
これは正常な動作ですか?これを簡単に変更できますか?
サンプルコード:任意の助け
spring.jpa.hibernate.use-new-id-generator-mappings=true
spring.datasource.url=jdbc:mysql://localhost/prod
spring.datasource.username=root
spring.datasource.password=***
spring.datasource.initialize=true
spring.datasource.platform=mysql
ありがとう:
@RunWith(SpringRunner.class)
@DataJpaTest
@Sql("/test-data.sql")
public class CdrIntegrationTest {
// any tests here
}
そして、私の "生産" のconfigsは、これらのものです。
はい、プロダクション設定はapplication.propertiesファイル内にあります。私が理解していないのは、それがH2データベースのテスト用にロードされた場合、なぜdata-mysql.sqlファイルをロードするのかです。 spring.datasource.platformオプションのために、私はそれを取り除こうとしましたが、データmysql.sqlは統合テストやアプリケーションの起動のどちらでも実行されません。私は@TestPropertySourceを見ましたが、アプリケーションの開始時に統合テストで実行されるいくつかのSQLスクリプトと、アプリケーション起動時に他の設定を持つような設定が多かったようです。 –