2012-10-28 83 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" 

因爲沒有異步操作是現在被稱爲:

我通過改變回調解決了這個問題。