我正在Spring Boot项目中使用Hashi Corp保险库。我能够毫无问题地运行该项目。但是,当我运行单元测试时,secret-id
和role-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-id
和role-id
,但仍然无法解析属性
[好,事实证明,在春季引导测试中使用src/main/resources/application-ide.yml
中的配置文件时,属性未被库值替换。将同一文件复制到src/test/resources/application-ide.yml
可解决此问题。
TL; DR对于Spring Boot测试,始终最好使用src/test/resources
中的属性文件,而不要使用src/main/resources