我正在使用 Maven 和 JBehave 进行集成测试。我也在使用 tomcat7 maven 插件,它在集成运行之前开始运行,这样我就可以编写影响我的 api 的 jBehave 故事。
我现在正在尝试包含 Wiremock,因为我有一些我想模拟的外部 HTTP 调用,wiremock 似乎是完美的解决方案。
我不想在 java 中编写任何模拟存根,我在 Wiremock 文档上看到有一个独立模式,您只需将文件和映射放在一个文件夹中,我线模拟将在必要时拾取它们。
我已将其包含在我的 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 在独立模式下设置线模拟吗?