I am using Spring Boot 1.4.3 and have a whole bunch of tests that are annotated with @DataJpaTest
. By default, they run against an in-memory database. I would like to be able to run all of them against a local MySQL temporarily. How can I do this in an easy way?
I have found that I can make it work for one by adding @ActiveProfiles("local")
where I have an application-local.properties
that points to my local MySQL, but it is just too much work to add that everywhere, run the tests and then remove it again (since I only want to run this manually against MySQL, the CI environment will run against the in memory db).
I am using Maven if that would matter.
UPDATE:
So I have an application-local.properties
which contains the db properties to connect to my local MySQL database (Which I use already to run my application against the local MySQL)
Then I right-click in IntelliJ on a package and select "Run all tests in package". In the settings of that run configuration, I add -Dspring.profiles.active=local
to the "VM options" field.
I would have thought that this would activate the local
profile during the tests, but it does not. If I stop the local MySQL, the tests still run fine.