我在 Spring Boot 应用程序中引入了配置文件,并将一些属性从 application.properties 移到了 application-puppet.properties。这在运行应用程序时效果很好,但在测试时却不行。
将此添加到 application.properties 文件:
spring.profiles.active=puppet
并将一个属性从 application.properties 移动到 application-puppet.properties
person.fileName=person.txt
然后我将@ActiveProfiles 添加到抽象测试类:
@ContextConfiguration(classes = AbstractElasticsearchSpringContextTests.EsConfig.class)
@ActiveProfiles("puppet")
public abstract class AbstractElasticsearchSpringContextTests extends AbstractTestNGSpringContextTests {
...
但是我得到这样的错误: 嵌套异常是 java.lang.IllegalArgumentException:无法解析字符串值“${person.fileName}”中的占位符“person.fileName”
最佳答案
您可以在 ContextConfiguration 注释中添加 SpringBootContextLoader 作为加载器:
@ContextConfiguration(classes = {AbstractElasticsearchSpringContextTests.EsConfig.class}, loader = SpringBootContextLoader.class)
它将处理您的 Activity 配置文件属性文件。
关于java - @ActiveProfiles 不适用于 AbstractTestNGSpringContextTests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35890997/