При запуске теста файл init.sql
ищется в папке ресурсов, потому что по умолчанию для maven проектов при запуске теста, содержимое каталога /src/test/resources
помещается в корень вашегоCLASSPATH
.Поэтому, когда вы указываете classpath в качестве переменной среды в свойстве spring.datasource.druid.url
, как и в вашем вопросе, к каталогу /src/test/resources/
добавляется префикс.
Чтобы ответить на ваш вопрос, убедитесь, что файл init.sql
можно найти, используя указанное свойство spring.datasource.druid.url=jdbc:h2:mem:s;MODE=MYSQL;INIT=RUNSCRIPT FROM 'classpath:/db/init.sql'
, вам нужно изменить папку ресурсов maven по умолчанию, изменив тег сборки pom.xml
следующим образом:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/test</directory>
</resource>
</resources>
</build>
Я бы рекомендовал для лучшей практики,вы скорее перемещаете файл init.sql
в папку src/test/resources
и используете свойство spring.datasource.druid.url=jdbc:h2:mem:s;MODE=MYSQL;INIT=RUNSCRIPT FROM 'classpath:init.sql'
, которое должно работать.