Я создаю TestClass
, используя класс Propiedades с аннотацией @PropertySource
.
@Component
@PropertySource("file:${services.properties}test-app/.properties")
public class Propiedades {
@Value("${db.name}")
public String dbName;
@Value("${db.jndi}")
public String dbJNDI;
@Value("${db.owner}")
public String dbOwner;
}
Как видите, я загружаю файл .properties
из внешнего местоположения относительно сервер, на котором развернуто приложение. services.properties
- это переменная env для сервера, у которого есть маршрут к указанной папке c.
Вот мой тестовый класс
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = Propiedades.class)
@TestPropertySource(locations = "/application-test.properties")
public class IncidenciaServicioServiceImplTest {
@Autowired
Propiedades propiedades;
@Test
public void isPropertySetup() {
String output = propiedades.dbName;
Assert.assertEquals("testDb", output);
}
}
При запуске теста я получаю следующее ошибка.
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [Propiedades]; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'services.properties' in value "file:${services.properties}test-app/.properties"
Почему он пытается загрузить свойства из этого пути? Разве он не должен читать из src/test/resources/application-test.properties
?