我正试图为我的团队创建一个使用Spring云契约的POC示例。
我得到了制片人的绿卡,但在消费者方面,我一直得到。
No stubs or contracts were found for [com.datson:cloudcontract-producer:+:stubs] and the switch to fail on no stubs was set.合同是存在的。
我尝试了几个用例,如官方spring云文档中所描述的那样。
@AutoConfigureStubRunner(ids = "com.datson:cloudcontract-producer:+:8080", stubsMode = StubRunnerProperties.StubsMode.LOCAL)
@AutoConfigureStubRunner(ids = "com.datson:cloudcontract-producer:+:stubs"
下面是消费者代码示例:https://github.com/Yayan89/springboot-config-server/tree/master/cloudcontract-consumer
下面是生产者代码示例:https://github.com/Yayan89/springboot-config-server/tree/master/cloudcontract-producer
可能是我错过的傻事。
发布于 2020-01-18 22:04:00
在提供的示例中,您需要在本地m2中安装一个jar,以便从消费者端获取jar(请阅读有关如何直接从驱动器获取合同的文档)。如果您检查此示例和gradle build https://github.com/spring-cloud-samples/spring-cloud-contract-samples/blob/master/scripts/runGradleBuilds.sh#L37,您将看到您应该运行这样的程序
./gradlew build publishToMavenLocal假设您有maven-publish插件或
./gradlew build install假设您有一个maven插件
发布于 2020-01-19 23:05:09
谢谢回答:MarcinGrejszzak,我只想确定我是否正确理解。生产者需要发布mavenlocal (.m2),以便消费者能够构建它。我的陈述正确吗?
id 'maven-publish'和我们需要在gradle/mvn构建中添加我们的生产者
implementation("com.datson:cloudcontract-producer:+:stubs") {
transitive = false
}我的代码现在适用于
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK)
@AutoConfigureStubRunner(
stubsMode = StubRunnerProperties.StubsMode.LOCAL,
ids = "com.datson:cloudcontract-producer:+:stubs:0.0.1:8090"
)
@AutoConfigureMockMvc
public class LoanApplicationServiceTest {
@Autowired
MockMvc mockMvc;
@Test
public void given_WhenPassEvenNumberInQueryParam_ThenReturnEven() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.put("/fraudcheck")
.contentType(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.content().string("Even"));
}}https://stackoverflow.com/questions/59805138
复制相似问题