我想寫一個自定義的記者,將實習生的測試結果輸出到一個文件,但我已經到了路障。是否可以從自定義記者寫入文件?
我設法通過Intern的dojo加載程序獲取Node文件系統API,但writeFile或writeFileSync都不做任何事情(區別在於writeFileSync鎖定進程)。
最低版本的我的記者代碼:
define(["node_modules/intern/node_modules/dojo/node!fs"], function (fs) {
var buffer = "";
return {
"/test/pass": function(test) {
buffer += test.id + " passed\n";
},
"/test/fail": function(test) {
buffer += test.id + " failed\n";
},
"/runner/end": function() {
fs.writeFileSync("result.txt", buffer, function (error) {
if (error) {
throw error;
}
console.log("File saved");
});
}
};
});
如果我更換一個控制檯日誌寫電話,我得到預期的數據,讓一切似乎是工作的罰款。
編輯:修改後的代碼,工程:
define(["node_modules/intern/node_modules/dojo/node!fs"], function (fs) {
var buffer = "";
return {
"/test/pass": function(test) {
buffer += test.id + " passed\n";
},
"/test/fail": function(test) {
buffer += test.id + " failed\n";
},
"/runner/end": function() {
fs.writeFileSync("result.txt", buffer);
console.log("File saved");
}
};
});
你使用節點或瀏覽器運行測試嗎? –
我正在使用節點。這些測試是針對本地Selenium服務器運行的功能測試。 –