Я пытаюсь использовать new feature from Spring Boot 1.3.0.RELEASE - активировать профиль с помощью конфигурации spring-boot-maven-plugin
:application-test.properties не загружается при активации профилей с <profiles>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<profiles>
<profile>test</profile>
</profiles>
</configuration>
<executions>
<execution>
<id>start-application</id>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>stop-application</id>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
Но в этом случае моя интеграция тест начинает терпеть неудачу , из-за IllegalArgumentException: Could not resolve placeholder 'spring.mail.host' in string value "${spring.mail.host}"
Эта переменная определена в src/main/resources/application-test.properties
:
spring.profiles: test
spring.mail.host: 127.0.0.1
Мой тест выглядеть следующим образом:
@ContextConfiguration(
loader = AnnotationConfigContextLoader.class,
initializers = ConfigFileApplicationContextInitializer.class,
classes = TestContext.class
)
public class WhenAnonymousUserRegisterAccount extends AbstractTestNGSpringContextTests {
@Value("${spring.mail.host}")
private String mailHost;
TestContext
только определяет PropertySourcesPlaceholderConfigurer
с другими файлами свойств.
Самое интересное в том, что если удалить <profiles>
и активировать профиль из application.properties
мой тест работает:
spring.profiles.active: test
Итак, похоже, что, когда я использую <profiles>
Spring не загружает файл application-test.properties
к Окружающая среда.
Вопросы:
- это ошибка?
- (если это не так), как настроить весну для загрузки
application-test.properties
и использовать<profiles>
? - Почему эти подходы отличаются?
Я использую 'spring-boot-maven-plugin' во время тестов интеграции (извините, я удалил эту часть, чтобы сделать вопрос короче, теперь я добавил его). –
Как именно вы запускаете интеграционные тесты? Также вы должны взглянуть на https://github.com/spring-projects/spring-boot/blob/master/spring-boot-samples/spring-boot-sample-testng/src/test/java/sample/testng /SampleTestNGApplicationTests.java, на которых аннотации вы должны использовать в тесте (в основном SpringApplicationConfiguration вместо ContextConfiguration). – dunni
Выполняю тесты с командой 'mvn verify'. –