【发布时间】:2020-02-18 20:44:26
【问题描述】:
我有一个@SpringBootTest,它测试@ConfigurationProperties 的加载及其方法。它在test 源集中。
而且,在itest,我有一个使用 Wiremock 的集成测试(发送请求和使用存根作为响应等)
现在,当我运行 gradle test 时,第一个测试失败,说:
[ENV=local] [productName=app-gateway-api] [2019-10-22T16:18:30.994Z] [ERROR] [MSG=[Test worker] osboot.SpringApplication - 应用程序运行失败 org.springframework .beans.factory.UnsatisfiedDependencyException:创建文件 [E:\coding\code\app\build\classes\java\main\com\app\controller\MyController> .class] 中定义的名称为“myController”的 bean 时出错:不满足的依赖项通过构造函数表达 参数0;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为“proxyService”的bean:注入自动装配 依赖失败;嵌套异常是 java.lang.IllegalArgumentException:无法解析占位符 'wiremock.server.port' 的值 "http://localhost:${wiremock.server.port}/send"
在一些外部属性中使用。该值将用于itest,但不在test 中。但是上下文总是加载它。
在其他这样使用它的项目中,没有问题。但是,它似乎正在加载所有类,并且找不到 Wiremock 并创建服务器。
有问题的测试:
@SpringBootTest
public class MapperLookupTest {
...
}
Wiremock 依赖已经有compile 范围:
compile('com.github.tomakehurst:wiremock-jre8-standalone:2.21.0')
compile("org.springframework.cloud:spring-cloud-starter-contract-stub-runner")
我尝试使用@SpringBootTest(classes = {...}) 仅加载必要的类,但它太冗长了。
那么,有什么简单的方法可以告诉上下文加载 Wiremock 吗?
【问题讨论】:
标签: java spring-boot spring-boot-test wiremock