web-dev-qa-db-ja.com

ブラウザでKarmaテストの出力を表示しますか?

私はKarmaを初めて使用しますが、ブラウザでその出力を表示する方法を知りません(runer.htmlファイルが存在するときにJasmineと対話する方法とよく似ています)。

入門的なスクリーンキャストを見て、コンソールウィンドウでテスト出力を表示する方法を理解しましたが、ブラウザーでは、Karma以外のコンテンツはほとんどありません。

カルマ-接続済み

お知らせ下さい! Karma構成ファイルには必要なすべてのスクリプトリンクを含める必要があるため、別のrunner.htmlファイルを維持する必要はありません。

72
blaster

私の知る限り、ブラウザーでテストを実行するという点で、前の2つの答えは正しいです。 [デバッグ]をクリックして、コンソールに出力を表示します。

前の答えとは完全に矛盾しますが、Karmaを使用した完全な変数相互作用を使用して、これとステップスルーデバッグを定期的に実行します。

あなたの質問に対する適切な答えは、あなたが望むものはかなりHTMLベースの出力であるため、「いいえ」です。しかし、このカルマ用プラグインは、あなたが望む結果をもたらすかもしれません。

https://npmjs.org/package/karma-html-reporter

27
stolli

singleRun = falsekarma.conf.jsを指定して実行し、上隅にある[デバッグ]ボタンをクリックする必要があります。その後、出力が表示され、消えたり閉じたりすることはありません。コンソールを使用してデバッグすることもできます。

E2eテストのデバッグは「未来」に基づいているため、値をインターセプトできない(afaik)ため、それほど簡単ではないことに注意してください。

10
Chris Nicola

こんにちは私の場合、karma-jasmine-html-reporterをインストールしてレポーター配列に入れることでこの問題を解決しました。

  • インストールnpm i -D karma-jasmine-html-reporter
  • レポーターに「kjhtml」を追加します。
  • client:{clearContext:false}を追加
var gulpConfig = require('./build/build.conf')();
module.exports = function (config) {
    config.set({
        browsers: ['Chrome'],
        basePath: './',
        plugins: [
          // all other plugins
          'karma-jasmine-html-reporter'
        ],
        colors: true,
        client: {
            clearContext: false    // will show the results in browser once all the testcases are loaded
        },
        frameworks: ['jasmine', 'jasmine-sinon', 'sinon'],
        files: [].concat(
            gulpConfig.deps.lib,
            'js/**/*mother*.js',
            'js/**/*mother.*.js',
            'js/**/*.tests.js'
        ),
        logLevel: config.LOG_INFO,
        reporters: ['kjhtml', 'progress', 'coverage'],
    });
};
3

Karmaで HTML5 Web Notifications を表示したかったので、Karmaバージョン0.11で動作させるための簡単なものを書きました。他のバージョンとは少し異なる動作をする場合があります。このスクリプトを残りのアプリケーションスクリプトと共にロードし、カルマテスト結果を保存し、完了後にテストの成功を判断し、元のカルマ関数にリセットして、このスクリプトの実行時に変更されないようにします再び。

// store all my test results
var results = [];
// Wrap the karma result function
var resultFunc = window.__karma__.result;
window.__karma__.result = function(result){
    // run the original function
    resultFunc(result);
    // Push each result on my storage array
    results.Push(result);
}

// wrap the karma complete function
var completeFunc = window.__karma__.complete;
window.__karma__.complete = function(result){
    // run the original function
    completeFunc(result);
    // determine success
    var success = results.every(function(r){ return r.success });

    if (success) {
        // display a success notification
    }
    else {
        // display a test failure notification
    }

    // reset the result function
    window.__karma__.result = resultFunc;
    // reset the complete function
    window.__karma__.complete = completeFunc;
}
2
Dan-Nolan

1つのオプションは、ブラウザでJavascriptコンソールを開くことです。 Karmaは、結果を含む各テストのログエントリを作成します。

2
Jared Stark