我不确定将spring-cloud-contract用于我在标题中提到的目的是否正确,但我想了解它在这种情况下的用例。
我们正在更新我们的集成测试以使用Spring Cloud Contract。对于新特性,我们遵循文档从YAML/Groovy创建存根,然后在使用者端通过spring-cloud-starter-contract-stub-runner使用它们。
我关心的是已经编写并正在使用的存根。我们不想花费时间在Groovy/YAML中重写它们,以使Spring Cloud合约生成存根,因为我们已经有存根了。现有的测试配置如下:
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = Application.class
)
@AutoConfigureWireMock(port = 8989, stubs = "classpath*:**/stubs/mappings/**/*.json", files = "classpath*:**/stubs")
class MyClientIT { ... }当涉及到将此测试更改为使用spring-cloud-contract时,我遇到了如何配置存根运行器的问题:
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = Application.class
)
@AutoConfigureMockMvc
@AutoConfigureStubRunner(???)
public class MyNewClientIT {...}在这种情况下,是否可以并建议使用Spring Cloud Contract?如果是这样的话,我们如何让stub-runner看到本地存储的存根(而不是本地或远程存储的工件)?
谢谢..。
发布于 2019-01-31 00:05:35
最简单的方法是获取存根并重新打包,使其遵循META-INF/group.id/artifactid/mappings/...文件夹结构。然后,您可以使用Stub Runner类路径模式通过ids选取这些存根。
https://stackoverflow.com/questions/54441240
复制相似问题