0

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

测试文件非常简单。您可以在此处查看测试文件:test/test.coffee

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

  1. 运行一项测试;或者
  2. 从address_tester开始运行 34 个测试。

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

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

4

1 回答 1

1

答案是

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

异步操作。当我尝试使用

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

它不起作用,因为我仍在传递回调而不是读取返回值。

我通过将回调更改为:

data = fs.readFileSync filename, "utf8"

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

于 2012-10-29T00:13:19.860 回答