我正在尝试将我的协议文件发布给我建立的协议代理。根据docs,这是通过导入@pact-foundation/pact-node并调用publishPacts()来完成的。
但是,该函数并不存在。正如文档所说,我已经使用npm install @pact-foundation/pact-node --save安装了模块,然后required它,但当我尝试发布时,我得到的是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一起安装的@pact-foundation/pact-node版本。只有我单独安装的版本,似乎已经坏了。
发布于 2017-10-12 20:00:37
这对我的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)
})https://stackoverflow.com/questions/46653558
复制相似问题