当前位置: 首页 > 知识库问答 >
问题:

Pact CDC测试最佳实践

司空默
2023-03-14

我读过类似这样的文章,其中建议在提供者端验证存在于使用者的特性分支中的契约,实际上允许在合并到master之前对契约进行“预验证”。然而,我读过来自Pact团队的其他文档,说明了相反的情况。在达到契约涅槃的步骤中,它声明“要在您的提供商的配置项中保持绿色构建,而不是验证最新的整体契约,它应该验证配置项中标记有”master“的最新版本的契约。”在这里,我假设“最新的整体协议”是指发布给协议代理的消费者特性分支中可能存在的协议。

我很困惑。为了不让提供商团队不高兴,就像达到协议涅槃的步骤中所说的那样,如果提供商永远不会验证用户的特性分支的协议,而只是验证“主”和“生产”协议,那么发布该协议的目的又是什么呢?另一种问这个问题的方式是什么时候/应该从特性分支发布/验证契约,而不是仅仅从消费者和提供者的主分支针对“主”和“生产”契约发布/验证契约?

共有1个答案

巢承安
2023-03-14

请注意,这是关于“有效契约设置”的最新指南:https://docs.Pact.io/best_practices/pact_nirvana。希望这更清楚。

但如果不是,预验证特性分支肯定是代理的一个核心特性,也是我们想要做的事情。一旦改变在master中,在99%的情况下它应该是一帆风顺的(即兼容)。标准做法是a)有一个webhook,它可以触发提供程序构建的协议验证步骤,以验证新特性,或者b)在提供程序中有相应的特性分支,在推送更改时验证配置项中的协议。

还有一个新特性即将问世,叫做“未决契约”,它也将极大地改善这种情况,有效地允许任何新契约都不会破坏提供者的构建,但如果支持更改,它仍然会向消费者提供反馈。

 类似资料:
  • 这里有些给使用和编写 Ansible playbook 的贴士. 你能在我们的 ansible-example repository.找到展示这些最佳实践的 playbook 样例.(注意: 这些示例用的也许不是最新版的中所有特性,但它们仍旧是极佳的参考.) Topics 最佳实践 接下来的章节将向你展示一种组织 playbook 内容方式. 你对 Ansible 的使用应该符合你的需求而不是我们

  • 处理后台任务与常规调用方法有很大的不同。本指南旨在帮助让您的后台任务平稳有效地运行。本文基于 这篇博客文章。 使任务参数小而简单 方法(任务)在调用之前会被序列化。使用 TypeConverter 类将参数转换为 JSON 字符串。如果您有复杂的实体和 / 或大对象; 包括数组,最好将它们放入数据库,然后只将其标识 (id) 传递给后台任务。 错误例子: public void Method(En

  • VR设计 VR设计不同于平面体验设计。作为一种新的媒介,有新的最佳实践需要遵循,特别是保持用户的舒适性和存在性。这在如下指南中已经写得很透彻了: Oculus VR最佳实践 Leap Motion VR最佳实践指南 一些值得注意的事情: 公共的金科玉律是永远不要意外地把相机控制权从用户手中剥夺。 单位(比如对于位置)应该考虑使用米(m)。这是因为WebVR API以米为单位返回姿势数据,进而传送给

  • 本章文档将阐述一些使用herosphp开发一些常用模块的一些比较好的实践。 未完待续。。。

  • 适当的使用vuex 能不用就不用。 能用就用。 不要为了使用而使用,一个小方法里面有5个设计模式。 不要过度使用CSS框架 因为CSS框架一般会大幅度增加文件体积。 例如 bootstrap, ele.me前端框架。 这个在低端安卓机上影响显著。 使用CDN来存放js, css, 和图片文件。 灵活使用第三方Vue 插件 例如: 轮播图, 表单验证等等。这些轮子都是现成的。 前端逻辑务必简单 能在

  • 这是 Martin Zinkevich (Google) 在 NIPS 2016 Workshop 分享的谷歌机器学习最佳实践翻译版,PDF 全文见 Rules of Machine Learning: Best Practices for ML Engineering。 机器学习产品所要面对的难题是工程问题(而不是 ML 算法),所以在做机器学习时要遵循跟其他产品类似的工程原则。 术语 实例(