2017-10-09 28 views
0

我试图将我的协议文件发布到我设置的协议经纪人。根据docs,这通过导入@pact-foundation/pact-node并调用publishPacts()完成。条约JS:如何发布到协约经纪人

但是,该功能不存在。我已经使用npm install @pact-foundation/pact-node --save安装了该模块,如文档所述,然后require d it,但是当我尝试发布时,我得到TypeError: pact.publishPacts is not a function。当我从交互节点壳require,我得到这个:

> const pact = require('@pact-foundation/pact-node') 
undefined 
> pact 
{ default: Pact { __servers: [] } } 
> 

这是怎么回事?如果我导航到node_modules/pact/node_modules并在那里导入模块窗体,我可以很好地使用publishPacts方法。但是我的实际测试用例找不到与pact一起安装的@pact-foundation/pact-node版本。只有我单独安装的版本,这似乎被破坏。

+1

这看起来像一个bug,请你提高对协议节点资源库? –

回答

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) 
    }) 
+0

看起来这实际上是5.1.0中的一个错误。他们[修正](https://github.com/pact-foundation/pact-node/releases/tag/5.1.1)昨晚。 – ewok