2012-10-28 46 views
0

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

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

看来有一个地方的比赛条件。当我运行npm test,它的两两件事之一:

  1. 奔跑one test;或
  2. 运行34次测试,从address_tester开始。

很明显,我正在做一些需要被捕获的异步事件,但我还不太确定。无论如何,我不知道如何告诉Mocha等待任何异步项目被收割(即某种Mocha.wait_all,如果甚至可能的话 - 也许我必须添加'done()调用,但我没有想到是同步测试所必需的 - 我认为这可能是)。

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

回答

1

答案是

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

是异步运行。当我尝试使用

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

它没有工作,因为我还在传递回调而不是读取返回值。

data = fs.readFileSync filename, "utf8" 

因为没有异步操作是现在被称为:

我通过改变回调解决了这个问题。