我正在尝试将我的pact文件发布到我设置的pact代理。根据{{3}},这是通过导入@pact-foundation/pact-node
并调用publishPacts()
来完成的。
但是,该功能不存在。我已经使用npm install @pact-foundation/pact-node --save
安装了模块,正如文档所说,然后是require
d,但是当我尝试发布时,我得到TypeError: pact.publishPacts is not a function
。当我从交互式节点shell中require
时,我得到了这个:
> const pact = require('@pact-foundation/pact-node')
undefined
> pact
{ default: Pact { __servers: [] } }
>
这里发生了什么?如果我导航到node_modules/pact/node_modules
并在那里导入模块表单,我就可以得到publishPacts
方法。但是我的实际测试用例找不到与@pact-foundation/pact-node
一起安装的pact
版本。只有我单独安装的版本,似乎已被破坏。
答案 0 :(得分:0)
这适用于我v5.1.0
:
import pact from '@pact-foundation/pact-node';
import * as path from 'path';
const opts = {
pactUrls: [path.resolve(__dirname, './pacts/matching_service-animal_profile_service.json')],
pactBroker: 'https://test.pact.dius.com.au',
pactBrokerUsername: 'blah',
pactBrokerPassword: 'blah',
tags: ['prod', 'test'],
consumerVersion: '1.0.0'
}
pact.publishPacts(opts)
.then(() => {
console.log('Pact contract publishing complete!')
})
.catch(e => {
console.log('Pact contract publishing failed: ', e)
})