私はSpring起動で開発されたSpring MVCアプリケーションを持っています。これはアプリケーションですが、ちょうど学習目的のためです。起動時に特定のデータベース上で実行するようにSpring起動アプリケーションを設定する方法
デフォルトでは、アプリはMySQLデータベースを起動して使用します。ユニットテストとインテグレーションテストでは、メモリ内のH2データベースを使用しており、完全に動作します。
だから、私は2つのapplication.propertiesを持っています。 1つは/src/main/resources/application.propertiesです。
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost/myDatabase
spring.datasource.username = root
spring.datasource.password = mysql
spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.cache=false
下/src/test/resources/application.properties今
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"
spring.datasource.username=sa
spring.datasource.password=sa
内の他のapplication.properties、「私は、自動化されたWebサイトのテストのためにセレンを使用する必要があり、私はドン私のMySQLデータベースにテストデータが入力されるようにします。
私は春に、以前にこれを行っていないが、私は自分のアプリケーションは次のように働きたい:
- 起動し、端末から、それは使うべきデータベースを指定する特定のコマンドを使用して、自分のアプリケーションを。 localhostで起動する必要があります:8080
- そして、localhost:8080ですべてのSeleniumテストを実行します。 Seleniumテストで生成されたすべてのデータは、アプリケーションが実行されている間だけメモリに保持されます。
application.propertiesまたは他の設定を使用してSpringブートアプリケーションでこれを行う方法は?
このアプローチの問題点は何ですか?テストケースを実行しているときは、/src/test/resources/application.propertiesからapplication.propertiesをロードすることができます。 – asg
[this](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html)を読んでいますか? 'java -Dspring.datasource.url = -jar your.jar'アプリケーションを起動するときにシステムプロパティを指定するだけです。または、プロファイル固有のプロパティファイルをインクルードし、起動する前に '-Dspring.profiles.active = 'を使用してください。 –
データベース設定をapplication-mysql.propertiesおよびapplication-h2に入れます。プロパティを開き、-Dspring.profiles.active = mysql(またはh2)を使用してアプリケーションを実行します。 –