我正在使用Mocha从命令行对我的SnailMailAddressParser项目运行一些测试。不幸的是,只有一些测试在Mocha退出之前运行。
测试文件非常简单。你可以see the test file here: test/test.coffee
似乎某处存在竞争条件。当我运行npm test
时,它会执行以下两项操作之一:
显然,我正在做一些需要捕获的异步,但我还不确定。在任何情况下,我都不知道如何告诉Mocha等待任何异步项目被收获(即某种Mocha.wait_all
,如果可能的话 - 也许我必须添加'done()
个调用,但我认为这不是同步测试所必需的 - 我认为这可能是。)
我会进行实验并发布我从测试中收集到的任何答案,但我会很感激任何见解。
答案 0 :(得分:1)
答案是那个
fs.readFile filename, "utf8", -> ...
是异步操作的。当我尝试使用
时 fs.readFileSync filename, "utf8", -> ...
它无法正常工作,因为我仍在传递回调而不是读取返回值。
我通过将回调更改为:
来解决问题data = fs.readFileSync filename, "utf8"
因为现在没有调用异步操作。