数据 Jpa 测试无法加载属性

Data Jpa Test fails to load properties

我在 Spring 引导项目中使用 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());
    }
}

更新: 我可以通过 VM 参数传递 secret-idrole-id,但属性仍未解析

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

TL;DR 对于 Spring 引导测试总是更好地使用来自 src/test/resources 而不是 src/main/resources

的属性文件