1

私は非常に奇妙な振る舞いをしています(私の観点から):

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

正常ですか?

この作業を行うためにモカで調整するものはありますか?

4

1 に答える 1