Pact CDC 测试最佳实践

Pact CDC Testing Best Practice

我读过像 this one that suggest verifying contracts on the provider side that exist in a consumer's feature branch, in effect allowing the contract to be "pre-verified" before being merged to master. However, I've read other documentation from the Pact team stating the opposite. In The Steps to Reaching Pact Nirvana 这样的文章,它说 "To keep a green build in your provider’s CI, rather than verifying the latest overall pact, it should verify the pact for the latest version tagged with “master” in the CI." 在这里,我假设 "latest overall pact" 一词表示可能存在于消费者功能分支中的协议发布给 Pact Broker。

我很困惑。为了不像 The Steps to Reaching Pact Nirvana 中所述那样 "make provider teams unhappy",如果提供者永远不会验证该协定而只验证 "master" 和,那么从消费者的功能分支发布协定的目的是什么? "production" 契约?另一种问这个问题的方法是什么时候 would/should 契约曾经是 published/verified 来自功能分支而不是消费者和提供者的主要分支反对 "master" 和 "production" 契约?

请注意这是 "effective Pact setup" 上的最新指南:https://docs.pact.io/best_practices/pact_nirvana。希望这更清楚。

但如果不是,pre-verifying 功能分支绝对是 Broker 的核心功能,也是我们想要做的事情。一旦更改在 master 中,在 99% 的情况下它应该是一帆风顺的(即兼容)。标准做法是 a) 有一个 webhook 可以触发提供者构建的协议验证步骤以验证新功能或 b) 当更改是时,提供者中的相应功能分支验证 CI 中的协议推了。

还有一项名为 "pending pacts" 的新功能即将推出,这也将极大地改善这种情况,有效地允许任何新合同不会破坏提供商的构建,但如果支持更改。