特性分支中契约测试的工作流
Workflow for Pact Testing in Feature Branches
我目前正在试验 Pact,偶然发现了一个工作流程问题,找不到令人满意的解决方案。所以希望有人能帮助我。 :-)
首先,这是我当前在消费者端更改的工作流程:
- 使用者更改已上传到功能分支中的 Github
- 契约测试在 CI 系统上进行 运行,生成的契约被上传到带有标签 [feature-branch-name][=35= 的契约经纪人]和verify_feature(目前我只用后一个)
- 消费者等待验证(使用can-i-deploy工具)
- pact broker 通过 webhook 触发提供者(触发器:contract_content_changed)
- 提供商 运行 对标记为 verify_feature 的最新版本进行协议验证并上传结果
- 消费者检查结果,如果验证成功则可以合并分支
到目前为止一切顺利。当消费者引入重大更改时,问题就出现了:
消费者将更改上传到 Github 后,执行上述流程,提供者验证失败,进而导致消费者构建失败。
现在在提供商方面进行了必要的更改。提供商 运行 对测试阶段的消费者版本进行协议验证,如果成功,则新版本将被合并和部署。
现在应该也可以合并新的消费者版本了。唉,不行,因为这个版本还没有再次验证。当我重新启动 CI 作业时,契约被重新上传到契约代理,但是由于契约内容没有改变,所以没有触发 webhook。消费者版本从未经过验证。
所以,我做错了什么?
您需要新的 WIP 协议功能。它目前正在开发中,如果您想试用它,可以在几天内在 pact-js(以及包装 pact-ruby-standalone 的其他语言)中进行 beta 测试。如果您使用的是 pact-jvm,则需要稍等片刻,但我们可以提供解决方法。我已经写了一篇关于 WIP 协议的博客 post,但尚未发布,因为该功能尚未准备好 public 发布。您可以在此处找到 post http://blog.pact.io/p/51906e22-ccce-486b-9993-c21794e557d4/ 我很乐意收到您的反馈。
如果您想进一步讨论这个问题,请转到 slack.pact.io 和@我。
我目前正在试验 Pact,偶然发现了一个工作流程问题,找不到令人满意的解决方案。所以希望有人能帮助我。 :-)
首先,这是我当前在消费者端更改的工作流程:
- 使用者更改已上传到功能分支中的 Github
- 契约测试在 CI 系统上进行 运行,生成的契约被上传到带有标签 [feature-branch-name][=35= 的契约经纪人]和verify_feature(目前我只用后一个)
- 消费者等待验证(使用can-i-deploy工具)
- pact broker 通过 webhook 触发提供者(触发器:contract_content_changed)
- 提供商 运行 对标记为 verify_feature 的最新版本进行协议验证并上传结果
- 消费者检查结果,如果验证成功则可以合并分支
到目前为止一切顺利。当消费者引入重大更改时,问题就出现了:
消费者将更改上传到 Github 后,执行上述流程,提供者验证失败,进而导致消费者构建失败。
现在在提供商方面进行了必要的更改。提供商 运行 对测试阶段的消费者版本进行协议验证,如果成功,则新版本将被合并和部署。
现在应该也可以合并新的消费者版本了。唉,不行,因为这个版本还没有再次验证。当我重新启动 CI 作业时,契约被重新上传到契约代理,但是由于契约内容没有改变,所以没有触发 webhook。消费者版本从未经过验证。
所以,我做错了什么?
您需要新的 WIP 协议功能。它目前正在开发中,如果您想试用它,可以在几天内在 pact-js(以及包装 pact-ruby-standalone 的其他语言)中进行 beta 测试。如果您使用的是 pact-jvm,则需要稍等片刻,但我们可以提供解决方法。我已经写了一篇关于 WIP 协议的博客 post,但尚未发布,因为该功能尚未准备好 public 发布。您可以在此处找到 post http://blog.pact.io/p/51906e22-ccce-486b-9993-c21794e557d4/ 我很乐意收到您的反馈。
如果您想进一步讨论这个问题,请转到 slack.pact.io 和@我。