私は非常に奇妙な振る舞いをしています(私の観点から):
mocha を使用して単体テストを作成すると、ファイルを書き込むことができません (ファイルを作成できますが、何も書き込まれません)。
例として、次のコードがあります。
console.log('The beginning');
var fs = require('fs');
var writableStream = fs.createWriteStream("./testOuputFile.txt");
function callback(s){
console.log('callback', s);
}
writableStream.on("error", function(err) {
console.log("ERROR");
done(err);
});
writableStream.on("close", function(ex) {
console.log("CLOSED");
done();
});
writableStream.on("finish", function(ex) {
console.log("ENDED");
done();
});
writableStream.on("open", function(fd) {
console.log("OPENED:"+fd);
});
if(typeof callback === "undefined"){
callback = function(s){console.log(s);};
}
var cbCalled = false;
function done(err) {
if (!cbCalled) {
callback(err);
cbCalled = true;
}
}
writableStream.write('Something');
writableStream.end();
fs.writeFile('message.txt', 'Hello Node', function (err) {
if (err) throw err;
console.log('It\'s saved!');
});
console.log('The end');
このコードを run.js という名前のファイルにコピーして「node run.js」を実行すると、次のように出力されます。
The beginning
The end
OPENED:11
ENDED
callback undefined
CLOSED
It's saved!
テキストを含む 2 つのファイル (testOutputFile.txt と message.txt) を取得します。
test/test.js という名前のファイルに同じことを行い、「mocha」を実行すると、次のように出力されます。
The beginning
The end
0 tests complete (0 ms)
そして、2 つの空のファイル (ゼロ バイト) を取得します: testOutputFile.txt と message.txt
正常ですか?
この作業を行うためにモカで調整するものはありますか?