1
后有2个步骤我需要我的消费者测试结束:协议:发布协议,以代理之前或敲定
- 完成模拟服务器
- 发布协议,以代理。
起初,我正在完成,这样才发布:
var opts = {
//broker info
}
pact_node.publishPacts(opts).then(() => {
provider.finalize()
}).catch(() => {
console.error("Could not publish pact!")
provider.finalize()
})
我意识到这个是什么finalize()
是在协议文件被写入。因此,如果我按照这个顺序执行操作,那么第一次运行测试时,什么都不会发布,随后每发布一次上一次运行的合同版本。所以我试图扭转的顺序,先完成模拟服务器,然后发布:
provider.finalize().then(() => {
console.log("Publishing pact to broker")
pact_node.publishPacts(opts)
}).catch(() => {
console.error("Could not finalize provider!")
})
但与此,无论是then
也不catch
块不断得到执行。我没有收到任何消息打印到控制台。
这是怎么回事?我应该在哪些顺序中调用这些函数,为什么第二个顺序不起作用?