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
塊不斷得到執行。我沒有收到任何消息打印到控制檯。
這是怎麼回事?我應該在哪些順序中調用這些函數,爲什麼第二個順序不起作用?