74

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

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

カルマ - 接続

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

4

5 に答える 5

10

singleRun = falseで実行し てkarma.conf.jsから、上隅にある「DEBUG」というボタンをクリックする必要があります。次に、出力が表示され、消えたり閉じたりしません。コンソールを使用してデバッグすることもできます。

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

于 2013-05-27T02:28:31.487 に答える
5

こんにちは私の場合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'],
    });
};

于 2018-07-27T19:34:19.820 に答える
2

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

于 2013-05-14T23:04:03.553 に答える
2

Karma でHTML5 Web 通知を表示したかったので、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;
}
于 2015-01-20T14:52:54.150 に答える