통합 테스트 중에 로그를 유지하려고합니다. 모든 '항목'이 컴파일되고 얼마나 많은 시간이 걸렸는지 테스트하고 있습니다. 노드 4.3을 사용하고 있습니다.NodeJS fs.appendFile이 mocha의 약속 내에서 작동하지 않습니다.
내가 로그 파일 생성 모든첫째 :
testCompile() {
return this
.buildItem()
.then(result => {
// whatever testing stuff
});
}
buildItem() {
return this
.internalLogicForCompiling()
.then(result => {
// This is not appending anything
fs.appendFile("./log.csv", `${item.name}; ${result.compileTime}`);
return result;
});
}
:
for (const item of items) {
it('compiles', function() {
return item.testCompile();
});
}
그리고 item
클래스는 이러한 방법이 있습니다
before(function() {
if (!fs.existsSync("./log.csv")) {
fs.writeFile("./log.csv", "Name; Time");
}
});
그런 다음 각
it
블록 내에서 내가 이런 짓을 했을까을
지금까지 파일이 생성되었지만 업데이트되지 않았습니다 ... 어떤 단서인지 wron 지?
추신 : 파일이 존재하지 않는다면, fs
은 오류를 발생시켜야한다고 가정합니다.
안녕, 나는 이미 그것을했다'return' :
appendFile
그 일을 수행하기 전에 반환 약속이 해결되지 않도록그리고
buildItem
는 다음과 같이 될 수 있습니다. 동기화 메서드가 제대로 작동하는 것 같습니다 :) – josemigallas