AVA afterEach()回调未完成

时间:2016-05-09 14:45:56

标签: ava

似乎我尝试从always.afterEach()函数执行异步(或只是缓慢?)的操作,当测试失败时,进程不会等待它完成。我的具体情况是,我试图在每次测试后进行一些数据库清理,即使afterEach挂钩被调用,它似乎也没有机会在进程退出之前完成。

我试图将其提炼为一个简单的例子:

import test from 'ava'

test.afterEach.always('CLEANUP', async t => {
  console.log('START', t.title)

  await new Promise(resolve => setTimeout(resolve, 5000))

  console.log('END', t.title)
})

test('Test', async t => {
  console.log('START', t.title)
  t.plan(1)

  t.is(1, 2)
  console.log('END', t.title)
})

这是我得到的输出:

START Test
END Test
  ✖ Test 1 === 2
START CLEANUP for Test

  1 test failed [10:42:18]


  1. Test
  AssertionError: 1 === 2
    _callee2$ (cleanup-test.js:15:5)
    Test.fn (cleanup-test.js:11:1)

我希望看到END CLEANUP打印出来(当测试通过时确实会发生。

我是服务器端JS的新手,所以我希望我只是做些傻事。

更新:事实证明,只有在设置了fail-fast标志时才会中断。那可能是一个错误。

0 个答案:

没有答案