java - @ActiveProfiles 不适用于 AbstractTestNGSpringContextTests

标签 java spring

我在 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/

相关文章:

java - 我们如何在 MySQL 表格单元格中以类似列表的格式存储文本?

java - 如何在 spring boot 中发送 400、401、405、403 和 500 错误的自定义响应?

java - 使用 JDBC 模板无法访问数据库时出现 SQLNonTransientConnectionException

java - Hibernate 尝试获取用户时出现 Spring 安全错误

java - Java 的日期格式

java - Kafka Java Consumer 已关闭

spring - Spring 如何在没有调试信息的情况下获取参数名称

java - 在同一处理中混合 HibernateTemplate 和 JdbcTemplate

java - Android Studio-RatingBar setOnTouchListener无法正常工作

java - 无法停止 AsyncTask 中的 ProgressDialog