java - Spring Cloud Contract 测试适用于 Maven,但不适用于 JUnit 运行

标签 java maven intellij-idea junit spring-cloud-contract

我有一个包含两个模块的 Maven 项目,一个用于生产者,另一个用于消费者

Project
-- Producer module
-- Consumer module

消费者包含对生产者 stub 的依赖,即

<dependency>
    <groupId>com.example</groupId>
    <artifactId>producer-application</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <classifier>stubs</classifier>
    <scope>test</scope>
</dependency>

并且集成测试已配置,因此 StubRunner 使用类路径扫描,即

@AutoConfigureStubRunner(
        stubsMode = StubRunnerProperties.StubsMode.CLASSPATH,
        ids = "com.example:producer-application:+:8090"
)

在构建期间,消费者的集成测试可以正确执行,但如果我尝试通过 IDE (IntelliJ) 使用 JUnit 在本地运行测试,则找不到 stub 并且测试失败。

这是项目结构的问题吗?如果是这样,我可以更改一些内容以使其在不更改代码的情况下运行吗?

最佳答案

类路径在 ide 中无法工作,例如Intellij 不会将 stub jar 添加到类路径中。这是 ides 的一个已知问题。

关于java - Spring Cloud Contract 测试适用于 Maven,但不适用于 JUnit 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60706001/

相关文章:

java - 我可以通过在子类中包含父类来以递归方式反序列化 json 吗?

java - XML 解析 - XPath 表达式尝试访问第二个 for 循环内的 xml 元素

java - 使用 Maven 从 jar 导入并使用类

git - 如何在intelliJ IDEA中进行git review?

java - IntelliJ 说\b(退格键)是字符串文字中的非法转义序列。为什么?

java - 使用扫描仪创建对象标识符?

java - 使用无参数构造函数添加到数组

java - 包 org.springframework.data.repository 不存在 spring boot jpa

java - 如何使用eclipse向jfugue添加依赖?

function - Grails域功能不起作用