在浏览器中查看Karma测试输出?

时间:2013-05-02 17:39:33

标签: karma-runner

我是Karma的新手,但我想知道如何在浏览器中查看其输出(非常类似于与Jasmine交互的方式,当存在runner.html文件时)。

我观看了介绍性的截屏视频,我了解如何在控制台窗口中查看测试输出,但在我的浏览器中,除了

之外,我几乎没有内容为Karma
  

业力 - 连接

请指教!我想避免维护一个单独的runner.html文件,因为Karma配置文件已经要求我包含所有必要的脚本链接。

5 个答案:

答案 0 :(得分:27)

AFAIK,前两个答案是正确的,因为你想在浏览器中运行测试;单击DEBUG并在控制台中查看输出。

与上一个答案礼貌地相反,我经常使用Karma进行完全可变交互的逐步调试。

你问题的正确答案,因为你想要的是基于HTML的输出,是“不”。但是,这个业力插件可能会给你你想要的结果。

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

答案 1 :(得分:10)

您需要在singleRun = false中使用karma.conf.js运行它,然后点击右上角显示“DEBUG”的按钮。然后你应该看到输出,它不会消失或关闭。您还可以使用控制台进行调试。

值得注意的是,调试e2e测试并不容易,因为它们是“未来”的,所以你将无法拦截值(afaik)。

答案 2 :(得分:2)

一种选择是在浏览器中打开Javascript控制台。 Karma为每个测试创建一个日志条目,包括结果。

答案 3 :(得分:2)

我想用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;
}

答案 4 :(得分:2)

嗨,在我的情况下,我通过安装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'],
    });
};