如何更正 Spring Boot 单元测试未能在两个几乎相同的测试类之一中加载应用程序上下文?

问题描述

我正在为将调用几个 Web 服务的 Spring Boot 应用程序构建单元测试。一个服务构建一个 PDF,另一个存储该文档,并且有单独的类来调用这些服务。我将 IntelliJ 用于 IDE。

我有一个测试类来运行我的所有测试时,一切都会启动并正常工作。当我有两个单独的测试类时,第一个类继续正常工作,但是在运行第二个类时我收到

ERROR [main] org.springframework.boot.SpringApplication: Application run Failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name...
Could not resolve placeholder 'PDF.form.serviceURL' in value "${PDF.form.serviceURL}"

这些类用以下注释,用于启动应用程序上下文

 @RunWith(springrunner.class)
 @SpringBoottest(classes = Application.class)

什么会导致一个测试类正常运行,而一个相同的测试类无法启动应用程序上下文?

解决方法

在这种情况下,问题与 IntelliJ 中的 JUnit 配置有关。如果没有适当的环境选项,上下文将无法正确启动,从而导致错误。