Я пытаюсь написать пользовательский репортер, который будет выводить результаты стажировки в файл, но я достиг контрольно-пропускного пункта.Можно ли записать файл из пользовательского репортера?
Мне удалось получить интерфейс API файловой системы узла через загрузчик dojo Intern, но ни 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");
});
}
};
});
Если я заменить вызов записи с лог консоли, я получаю ожидаемые данные, поэтому все остальное, кажется, работает нормально.
Edit: Модифицированный код, который работает:
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. –