web-dev-qa-db-ja.com

どのKarmaプロジェクトでもconsole.logが機能しない

更新:tl; dr; npmパッケージを更新しましたが、console.logの出力がカルマで表示されなくなりました。 console.logレベルでのみLOG_DEBUG出力を表示し、LOG_INFOで非表示にする動作変更のb/cのようです。その変更はいつ行われ、元に戻す方法はありますか?

オリジナル:Windowsコマンドプロンプトからkarmaを実行すると、console.logの出力が表示されません。以前は多くのプロジェクトで問題なく表示されていましたが、現在はどのプロジェクトでも突然機能しなくなっています。これは、1つのプロジェクトでnpm updateを実行した後に変更されたようです。他のプロジェクトはnpm updateしませんでしたが、すべてが機能しなくなりました。

クリーンなプロジェクトでMCVEを作成しましたが、それでも同じ動作が見られます。これが私のクリーンなプロジェクトにインストールされたパッケージのリストです(npm listからの出力)

C:\...\mvce>npm list
[email protected] C:\...\mvce
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
`-- [email protected]

そしてこれが設定コードです

karma.conf.js

module.exports = function(config) {
    config.set({
        autoWatch: false,
        singleRun: true,
        basePath: ".",
        frameworks: ["jasmine"],
        logLevel: "INFO",
        browsers: ["PhantomJS", "Chrome"],
        files: ["test.js"]
    });
};



test.js

describe("describe", function(){
    it("it", function(){
        console.log("test");
    });
}); 

これらの両方をkarma.conf.jsに追加しようとしました。違いはありません。

        client: {
            captureConsole: true
        }

        // or

        loggers: [
            { type: "console" }
        ]

注: この問題 はkarma githubで見ましたが、そこにある提案は役に立ちません。また、それはモカ付きのセットアップを説明しています。私はジャスミンを使用しています-公式の回避策は、私が試したcaptureConsoleを使用することです。

この問題のために Gist も作成しました。

環境情報:

  • 現在のすべての更新を含むWindows 10 Home
  • ノードv7.2.1
  • Chrome 56

Karmaがv1.5.0でコンソールレベルのキャプチャをログレベルでフィルタリングする機能を追加したようです。 git pull requestcode changes へのリンクを示します。この新機能に関するドキュメントの更新は見つかりませんでした。コードの変更に基づいて、ここに新しいルールがあります

Karma confファイルでbrowserConsoleLogOptionsを構成して、端末出力に表示するメッセージを指定できます。 levelプロパティを設定して、表示する必要がある最大レベルを指定します。すべてのメッセージを表示するには、levelを空の文字列に設定します。

私の場合は、次のように設定する必要があります。

browserConsoleLogOptions: {
    terminal: true,
    level: ""
}

更新: オープンgitの問題 について議論しています。ここで重要なカルマ1.5には実際には2つの変更があります。

  1. LOG == DEBUGとなるように、ログメッセージの重大度の順序を変更しました。使用された重大度はLOG> INFOです。つまり、すべてのプロジェクトでログレベルがINFOに設定されている場合、console.log古いバージョンのメッセージであり、新しいシステムでは表示されません。
  2. 上で述べたように、彼らはbrowserConsoleLogOptionsでログレベルでコンソールをフィルタリングするサポートを追加しました。