所有 pact-js 测试都失败并出现相同的错误

All pact-js tests are failing with same errors

我是 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: pact-node@4.8.0/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 文件夹中创建 pact.json 文件,也没有在 log 文件夹中创建日志文件。

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

你能试试下面的方法吗?

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

并向我们提供输出的要点。

Ruby 模拟服务器似乎没有启动或花费的时间超过 2 秒,节点进程正在等待它出现时超时。

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