我使用Maven和JBehave进行集成测试。我也在使用api maven插件,它在集成运行之前就开始运行了,这样我就可以写出能够击中我的tomcat7的jBehave故事。
我现在尝试包含Wiremock,因为我有一些thatI想要模拟的外部HTTP调用,wiremock似乎是一个完美的解决方案。
我不喜欢用java编写任何mock存根,我在Wiremock文档中看到有一种独立模式,您只需将文件和映射放在一个文件夹中,我连接mock将在必要时获取它们。
我已经在我的pom.xml中包含了这个
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock</artifactId>
<version>1.57</version>
<classifier>standalone</classifier>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>但是当我运行集成测试时,我得到的结果是
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/servlet/ServletContext"嵌入式tomcat7无法运行。有没有人能帮我用maven在单机模式下设置wire mock?
发布于 2015-10-02 20:01:27
我可以建议尝试2.0.4-beta版本吗?
首先,wiremock-standalone有它自己的POM,它避免了显式地排除传递依赖。它还使用了最新的Servlet API,从而降低了与容器发生冲突的风险。
https://stackoverflow.com/questions/32884721
复制相似问题