数据 Jpa 测试无法加载属性
Data Jpa Test fails to load properties
我在 Spring 引导项目中使用 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
,但属性仍未解析
好的,事实证明,在 spring 启动测试中使用来自 src/main/resources/application-ide.yml
的配置文件时,属性不会被 vault vaules 替换。将同一文件复制到 src/test/resources/application-ide.yml
可解决此问题。
TL;DR
对于 Spring 引导测试总是更好地使用来自 src/test/resources
而不是 src/main/resources
的属性文件
我在 Spring 引导项目中使用 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
,但属性仍未解析
好的,事实证明,在 spring 启动测试中使用来自 src/main/resources/application-ide.yml
的配置文件时,属性不会被 vault vaules 替换。将同一文件复制到 src/test/resources/application-ide.yml
可解决此问题。
TL;DR
对于 Spring 引导测试总是更好地使用来自 src/test/resources
而不是 src/main/resources