gpt4 book ai didi

javascript - 契约:在最终确定之前或之后向经纪人发布契约

转载 作者:行者123 更新时间:2023-11-30 14:59:38 27 4
gpt4 key购买 nike

在消费者测试结束时我需要执行两个步骤:

  1. 完成模拟服务器
  2. 将协议(protocol)发布给经纪人。

一开始我是先发布再定稿,像这样:

var opts = {
//broker info
}
pact_node.publishPacts(opts).then(() => {
provider.finalize()
}).catch(() => {
console.error("Could not publish pact!")
provider.finalize()
})

我意识到 finalize() 是写入协议(protocol)文件的地方。因此,如果我按照这个顺序做事,第一次运行测试时,不会发布任何内容,随后每次,我都会发布上一次运行的合约版本。所以我尝试颠倒顺序,先完成模拟服务器,然后发布:

provider.finalize().then(() => {
console.log("Publishing pact to broker")
pact_node.publishPacts(opts)
}).catch(() => {
console.error("Could not finalize provider!")
})

但是有了这个,thencatch block 都不会被执行。我没有在控制台上打印任何消息。

这是怎么回事?我应该按哪个顺序调用这些函数,为什么第二个顺序不起作用?

最佳答案

发布协议(protocol)一定要在定稿后完成。

我建议您完全在一个单独的任务中完成它,而不是在与测试相同的代码中,因为它应该只从 CI 完成,而不是从您的本地机器完成。

关于javascript - 契约:在最终确定之前或之后向经纪人发布契约,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46740415/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com