2017-02-27 108 views
-2

我第一次使用Pact.js进行微服务测试。 我试图按照这些例子如下:所有pact-js测试都失败,出现同样的错误

  1. https://github.com/lucasmajerowicz/pact-node-example

  2. https://github.com/pact-foundation/pact-js/tree/master/examples/e2e

  3. https://github.com/pact-foundation/pact-js/tree/master/examples/mocha

在实施例3;我浏览到测试文件夹,运行mocha index.spec.js 但它引发以下错误:

[2017-02-27T21:37:52.426Z] INFO: [email protected]/38629 on Meliss-MacBook-Pro.local: Creating Pact with PID: 38630 
    1) "before all" hook 
    2) "after all" hook 


    0 passing (2s) 
    2 failing 

    1) The Dog API "before all" hook: 
    Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test. 


    2) The Dog API "after all" hook: 
    Error: connect ECONNREFUSED 127.0.0.1:8989 
     at Object.exports._errnoException (util.js:1022:11) 
     at exports._exceptionWithHostPort (util.js:1045:20) 
     at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1087:14) 

它创建logpact文件夹如预期,但它既不在协议文件夹中创建一个pact.json文件,也没有在日志中记录文件夹。

让我更困惑的是我得到了例1和例2中完全相同的错误。 这告诉我,我有一个问题在我身边,但我不知道它是什么。 有人可以帮我调试这个问题吗?

+0

你可以看看'。/ logs/mockserver-integration.log'并粘贴内容的要点吗? –

+0

@MatthewFellows感谢您的回复。不幸的是这个文件是空的。 – melis

+0

不用担心。你可以尝试一些在https://github.com/pact-foundation/pact-node/issues/30中讨论的技巧吗?这个问题是针对验证过程的,但包括在节点外测试Ruby进程和检查端口等许多事情都与本次讨论有关。 –

回答

1

您可以请尝试以下方法吗?

  1. 增加测试超时(目前为2秒)
  2. 在任何pact({...})声明
  3. 设置logLevel: 'DEBUG'重新运行测试

,并为我们输出的要点。

似乎Ruby模拟服务器没有启动或者耗时超过2秒,并且节点进程超时等待它出现。

如果这样做不起作用,请尝试手动启动模拟服务./node_modules/bin/pact-mock-service --port 1234,当它出现时,运行命令netstat -an | grep LISTEN | grep 1234,以便我们可以看到它绑定到哪个网络。

+0

我用超时标志'mocha index.spec.js --timeout 10000'运行摩卡,它的工作原理!我想这只需要2秒钟以上的ruby进程来启动模拟服务器!非常感谢你@MatthewFellows。我相信我稍后会有更多的问题:) – melis

+0

太棒了!我将更新pact-js上的文档以建议增加超时时间。 –

相关问题