我使用摩卡的runner.on("fail", postProcessFunction)
來執行一些後處理,當一個測試失敗。摩卡在測試失敗不能做異步功能
請參見:https://github.com/mochajs/mocha/blob/master/lib/runner.js#L58
我的問題是,postProcessFunction
函數中我需要調用一個函數slowFunction
創建一個文件,並返回一個承諾。承諾需要10秒鐘才能解決,到那時,摩卡已經完成了下一次測試或停止執行。 slowFunction
函數沒有完成執行,並且文件永遠不會被創建。
我已經試過處理的承諾與promise.then(something)
還包裹postProcessFunction
在Q.async的那麼yield
荷蘭國際集團到slowFunction
,但我似乎從來沒有得到它等待緩慢的功能完成後再繼續。
注意:我不能使用全局afterEach,因爲測試已經具有套件級別afterEach,它將在全局afterEach之前執行。我需要在故障時立即執行slowFunction
我已經考慮過這個解決方案,但我的測試已經在每個塊之後。我希望在每次測試之後以及在任何其他之後執行它們。 – jmccure
您可以使用async/await – Lukus