我想写一个自定义的记者,将实习生的测试结果输出到一个文件,但我已经到了路障。是否可以从自定义记者写入文件?
我设法通过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服务器运行的功能测试。 –