我有一個摩卡測試,當我在調試模式下運行它,但在運行模式下失敗(我使用WebStorm)成功。摩卡測試運行失敗,但成功在調試模式
我在測試中所做的是:
it("test messenger", function(done){
messenger.send(message, callback);
//the messenger will save messages temporarily
//and send them to outside message queue(nsq) every 1 second (using setInterval)
reader.connect(nsq)... ;
reader.on('message', function(message){
//validate message ...
done();
});
})
在運行模式
,它總是超時,這意味着讀回調並沒有引發,但在調試模式下它成功...
如果我安排在超時接收代碼,它將在運行模式下取得成功:
it("test messenger", function(done){
messenger.send(message, callback);
//the messenger will save messages temporarily
//and send them to outside message queue(nsq) every second (using setInterval)
setTimeout(function(){
reader.connect(nsq)
reader.on('message', function(message){
//validate message ...
done();
}, 1000)
});
})
我的猜測是,摩卡會卡在某個地方紡紗,所以回調事件沒有機會得到EXEC但在調試模式下,它以某種方式被觸發。
問題:
- 是我的猜想是否正確?
- 我怎麼能找到摩卡的旋轉代碼?我使用--prof選項運行摩卡,並使用chrome
chrome://tracing
加載分析,但我不知道如何找到該地點。附
是V8日誌文件log
事件沒有被解僱,但在調試模式下它被解僱了。即使閱讀器連接時隊列爲空,後面的發送消息也應該觸發客戶端。 – Jerrylk