如何调试挂api-easy(或誓言)测试?

时间:2014-05-15 14:01:28

标签: node.js debugging vows

我使用api-easy实现REST api的端到端测试。库本身相当不错,但调试失败的测试比我预期的要困难,但也许我没有使用正确的方法。

我遇到了这个问题:测试发送了一个" GET"到服务器,由于OutOfMemory目前没有响应。请求永远被阻止,但我在输出中看不到它,因为只打印成功或失败的测试。

是否可以将所有请求转储到stdout?超时选项也可以帮助中止阻止测试(并使其失败)。

我目前的方法是修补api-easy.js文件以将请求转储到控制台:

  console.log(outgoing); // this line is new
  if (requestImpl)
    requestImpl(outgoing, this.callback);
  else
    request(outgoing, this.callback);

输出包含标题,uri和方法:

Dummy "echo" REST service 

{ headers: { 'Content-Type': 'application/json' },
  uri: 'http://localhost/resources/echo/abc',
  method: 'get' }
  When using the "echo" service A GET to /echo/abc
   ✓ should respond with 200
   ✓ should respond with {"echo":"abc"}

vows runner finish 
✓ OK » 2 honored (0.024s)

这不是一个非常好的解决方案,因为我正在修补node_modules目录的内容。


Api-easy内部使用vows来控制其数据流。我也用誓言(直接或咕噜咕噜声)进行测试。我已经启用了详细模式(vows -v --spec),但仅仅分析阻塞任务是不够的。我只能看到成功或失败的测试。

1 个答案:

答案 0 :(得分:0)

我扩展api-easy为请求提供超时。

这是我的拉取请求: https://github.com/flatiron/api-easy/pull/59

引擎盖下,easy-api使用request library。我的补丁使得请求的超时选项可以从api-easy配置。