摩卡过早退出测试

时间:2012-10-28 15:49:29

标签: node.js mocha

我正在使用Mocha从命令行对我的SnailMailAddressParser项目运行一些测试。不幸的是,只有一些测试在Mocha退出之前运行。

测试文件非常简单。你可以see the test file here: test/test.coffee

似乎某处存在竞争条件。当我运行npm test时,它会执行以下两项操作之一:

  1. 运行one test;或
  2. address_tester开始运行34次测试。
  3. 显然,我正在做一些需要捕获的异步,但我还不确定。在任何情况下,我都不知道如何告诉Mocha等待任何异步项目被收获(即某种Mocha.wait_all,如果可能的话 - 也许我必须添加'done()个调用,但我认为这不是同步测试所必需的 - 我认为这可能是。)

    我会进行实验并发布我从测试中收集到的任何答案,但我会很感激任何见解。

1 个答案:

答案 0 :(得分:1)

答案是那个

 fs.readFile filename, "utf8", -> ...

是异步操作的。当我尝试使用

 fs.readFileSync filename, "utf8", -> ...

它无法正常工作,因为我仍在传递回调而不是读取返回值。

我通过将回调更改为:

来解决问题
data = fs.readFileSync filename, "utf8"

因为现在没有调用异步操作。