0

我在 Spring Boot 项目中使用 Hashi Corp 保险库。我能够毫无问题地运行该项目。但是当我运行单元测试时,secret-idrole-id没有通过。我尝试了以下但有一个异常说两者都是空的。尝试对值进行硬编码,但也没有用

EmployeeTest.java

@RunWith(SpringRunner.class)
@DataJpaTest
@ActiveProfiles(value = "ide")
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
public class EmployeeTest
{
    private final Logger logger= LoggerFactory.getLogger(getClass());

    @Autowired
    EmployeeRepository employeeRepository;

    @Test
    public void getEmployeeById()
    {
        Employee employee=employeeRepository.getOne(13L);
        logger.info(employee.toString());
    }
}

更新: 我能够传递secret-idrole-id通过 VM 参数,但仍然无法解析属性

4

1 回答 1

0

好的,事实证明,src/main/resources/application-ide.yml在 spring boot 测试中使用配置文件时,属性不会被 vault vaules 替换。复制相同的文件来 src/test/resources/application-ide.yml解决问题。

TL;DR 对于 Spring Boot 测试,最好使用属性文件,src/test/resources而不是src/main/resources

于 2020-06-10T20:02:54.090 回答