我嘗試使用與webstorm測試運行摩卡在Win 7摩卡+ webstorm - 錯誤消息打破
我有這些配置PARAMS:
路徑節點:
C:\Program Files (x86)\nodejs\node.exe
工作目錄:
D:\creation\software developer\projects\dev\document root\
路徑節點的應用程序js文件:
C:\Users\inf3rno\node_modules\mocha\bin\_mocha
應用參數:
test
我得到了webstorm控制檯
✖ 1 of 1 test failed:
,但沒有出現以下錯誤信息有關該測試失敗。 :S
如何解決?
(Git中的bash我有一個詳細的錯誤信息,所以摩卡已安裝好)
試着用不同的記者,但他們沒有工作似乎。問題出在我認爲的Error對象上。其他一切都很好地展現。
寫了一個自定義記者,發現棧是否顯示在webstorm控制檯上是完全隨機的。最好的選擇是使用console.log或process.stdout.write將其與process.stderr.write打印在一起,否則不會顯示任何內容。我不知道那是爲什麼。也許這是某種類型的超時,但我把超時設置爲9999999.:S:S:S嗯,也許webstorm亞軍有一個超時,這取決於,而不是摩卡超時設置...
測試本報記者:
exports = module.exports = WebStorm;
/**
* Initialize a new `WebStorm` test reporter.
*
* @param {Runner} runner
* @api public
*/
//decribe -> suite
//it -> test
function WebStorm(runner) {
var buffer = [];
var suites = [];
var fails = [];
runner.on("suite", function(suite){
suites.push(suite.title || "''");
});
runner.on("suite end", function(suite){
if (fails.length > 0)
buffer.push("describe "+suites.join(".")+"\n"+fails.join("\n"));
fails = [];
suites.pop();
});
runner.on("fail", function(test, err){
fails.push(" it fail "+test.fullTitle() + err.message);
});
runner.on("end", function(){
process.stderr.write(buffer.length+"\n");
//process.stderr.write(buffer.join("\n"));
});
}
我發現它並不真正的問題輸出文本有多長,你剛纔多久顯示它之前等待。所以我仍然認爲這是一個超時問題,而不是一個stdout錯誤。 webstorm控制檯返回:「處理完成退出代碼59」,表示「發生意外的網絡錯誤。」
更改爲茉莉節點,它的工作。
編輯:
我改jasmine2,它有Windows上的同樣的問題。最簡單的解決方法是以1ms爲例推遲process.exit
。所以它不能在stdout.write
結束之前退出。 (之後手動刷新標準輸出和調用出口也可能是一個可行的解決方案。)
不錯,謝謝!任何想法爲什麼它在git bash中運行良好,爲什麼不在webstorm控制檯中? – inf3rno
哈哈我知道它,git bash是一個模擬的Linux,這是一個Windows問題。 :P – inf3rno
我在webstorm控制檯中得到了這個:「處理完成退出代碼59」,這意味着:「59發生意外的網絡錯誤。」 – inf3rno