|
请使用 spring-cloud-contract 5.0.2 获取最新稳定版本! |
Artifactory 中非 JVM 环境下使用存根进行提供者契约测试
在此流程中,我们假设:
-
API 生产者和 API 消费者是非 JVM 应用程序。
-
合同定义以 YAML 格式编写。
-
存根存储为 Artifactory 或 Nexus。
-
Spring Cloud Contract Docker(SCC Docker)和 Spring Cloud Contract Stub Runner Docker(SCC Stub Runner Docker)镜像被使用。
您可以在此处了解如何将 Spring Cloud Contract 与 Docker 结合使用以获取更多详情。此处
这里,您可以阅读一篇关于如何在多语言环境中使用 Spring Cloud Contract 的博客文章。
这里,您可以找到一个使用 Spring Cloud Contract 作为生产者和消费者的 NodeJS 应用程序示例。
生产者流程
从高层次来看,生产者:
-
编写契约定义(例如,使用 YAML 格式)。
-
设置构建工具以:
-
启动在给定端口上使用模拟服务的应用程序。
如果无法进行模拟,您可以设置基础设施并在状态化方式下定义测试。
-
运行 Spring Cloud Contract Docker 映像,并将正在运行的应用程序的端口作为环境变量传递。</p><p>SCC Docker 映像:
-
生成从附带卷生成的测试。
-
运行测试,针对正在运行的应用程序。
-
-
在测试完成之后,存档会被上传到存档仓库(例如Artifactory或Git)。<br>
以下UML图显示了生产者流程:
消费者流程
从高层来看,用户:
-
设置构建工具以:
-
开始运行 Spring Cloud Contract Stub Runner Docker 镜像并启动模拟实例。
环境变量配置:
-
存根获取。
-
该仓库的位置。
注意:
-
使用本地存储,您也可以将其作为卷进行挂载。
-
这些端口是存根正在运行的,需要公开。
-
-
针对正在运行的存根运行应用程序测试。
下图显示了以下 UML 图中显示的消费流: