1

インターン テストの結果をファイルに出力するカスタム レポーターを作成しようとしていますが、障害があります。

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");
        }
    };
});
4

1 に答える 1