对于最新的稳定版本,请使用 spring-cloud-contract 4.3.0! |
在非 JVM 世界中使用 Artifactory 中的存根进行提供商合同测试
在此流程中,我们假设:
-
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 的博客文章。
在这里,您可以找到 一个 NodeJS 应用程序的示例,它使用 Spring Cloud Contract 作为生产者和 消费者。
生产者流程
在高层次上,生产者:
-
编写合约定义(例如,在 YAML 中)。
-
设置构建工具以:
-
在给定端口上使用模拟服务启动应用程序。
如果无法进行模拟,您可以设置基础结构并以有状态方式定义测试。
-
运行 Spring Cloud Contract Docker 镜像,并将正在运行的应用程序的端口作为环境变量传递。 SCC Docker 映像:
-
从附加卷生成测试。
-
针对正在运行的应用程序运行测试。
-
-
测试完成后,存根将上传到存根存储站点(例如 Artifactory 或 Git)。
以下 UML 图显示了生产者流:

消费者流
在高层次上,消费者:
-
设置构建工具以:
-
启动 Spring Cloud Contract Stub Runner Docker 镜像并启动存根。
环境变量配置:
-
要获取的存根。
-
存储库的位置。
请注意:
-
要使用本地存储,您还可以将其作为卷附加。
-
需要公开存根运行的端口。
-
-
针对正在运行的存根运行应用程序测试。
以下 UML 图显示了使用者流:
