我正在尝试编写一个自定义报告器,它将实习生测试结果输出到文件中,但我遇到了障碍。
我设法通过 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");
}
};
});