インターン テストの結果をファイルに出力するカスタム レポーターを作成しようとしていますが、障害があります。
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");
}
};
});