0

使用 ava 测试运行程序时出现错误。对于代码:

test('gets account by ID with includes', async t => {
  const c = new Client('http://localhost:8000/v2/', token);
  const included = await c.account.get('2001', ['foo']).then(res => res.data.included);

  t.is(included[0].type, 'Foo');
});

test('gets order item by ID', async t => {
  const c = new Client('http://localhost:8000/v2/', token);
  const orderItem = await c.orderItem.get('2000').then(res => res.data.data);

  t.is(orderItem.type, 'OrderItem');
  t.is(orderItem.id, '2000');
});

我得到:

1. get › gets account by ID with includes
Error: connect ECONNRESET 127.0.0.1:8000
Object.exports._errnoException (util.js:1036:11)
exports._exceptionWithHostPort (util.js:1059:20)
TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)


2. get › gets order item by ID
Error: write EPIPE
exports._errnoException (util.js:1036:11)
WriteWrap.afterWrite (net.js:794:14)

这些错误不会一直出现,它们是非常低级的错误,所以我怀疑它一定是某种服务器配置问题。也许我应该在测试之间引入延迟?Ava 测试在许多进程上产生并同时运行。

4

1 回答 1

0

尝试连续运行测试,看看错误是否仍然存在。可能并行运行所有测试对您的服务器来说太多了。

通常,服务器应该能够处理并发连接,尽管它是有限制的。您正在测试的部署似乎已达到该限制。

你能提供你正在执行的单个测试的数量吗?如果这是您的部署的严重问题或者您正在到达服务器的边界,则此信息可能会有所帮助。也许您可以尝试使用基准工具(如 Apache bench)来获取有关您的服务器部署功能的信息。

于 2016-09-23T21:11:27.077 回答