2013-10-26 15 views
24

私はSpringブートを使用してSpring Webプロジェクトを作成しました。 テストに関する習慣を理解したいですか?私は初期のschema.sqlを持つ私のjunitsのためのhsqlまたはh2と言うメモリ内蔵データベースを必要とします。 メインアプリケーションでは、データベースがmysqlまたはoracleと言うことができますメモリ内のdbを使用したSpringブートテスト

通常、Spring以外のプロジェクトでは、Webアプリケーションによって参照される別のapplicationcontext.xmlがあります。テストのためには、applicationContext- text.xml

ここで、すべてのものが自動的に作成され、SpringBootもインストールされているため、SpringBootで使用します。ジュニットのために埋め込まれたinmemory dbと、アプリケーションのためのMySQLのような外部のdbをどのように設定するのか知りたいですか?

私が考えることができる1つの解決策は、プロファイルを使用することです。 2つのプロパティーファイルapplication.propertiesとapplication-test.propertiesがあります。私のジュニットのテストプロファイルを使用します。

私が取るべきアプローチに関する推奨事項。

答えて

34

実際にプロファイルが推奨されています。私がやることはおそらくメモリ内の実装を「デフォルト」のプロファイルにすることです(実際のデータを決して変更しないという意味では無害ですので、誤って実際のデータベースに対して実行する場合にはデフォルトにする方が良い)。個人的には、すべての外部構成を単一のapplication.ymlファイルに入れることを好みますが、それは本当にあなた次第です。外部設定では、有効なドライバクラスとURLを指定する必要があります。

spring: 
    datasource: 
    driverClassName: org.h2.Driver 
    url: jdbc:h2:mem:test;MODE=PostgreSQL 
    schema: classpath:/schema.sql 

--- 

spring: 
    profiles: local 
    datasource: 
    url: jdbc:postgresql://localhost/test 
    username: root 
    password: changeme 
    driverClassName: org.postgresql.Driver 
    schema: 

(H2は、Postgresの互換モードを持っているので、それが生産にはpostgresを補完するものとして、本当に素敵であることに注意してください。)

関連する問題