15

我正在使用 Karma 测试我的项目,并且可以在控制台窗口中看到测试通过失败,但是,如何让这些在浏览器中显示?浏览器只有一个绿条(即使测试失败)

Karma v0.10.2 - 已连接

写在里面。

我已经尝试添加singleRun :false到 karma.config.js 文件。

配置文件如下所示:

module.exports = function (config) {
    config.set({
        basePath: '../',

        files: [
            'app/lib/angular/angular.js',
            'app/lib/angular/angular-*.js',
            'test/lib/angular/angular-mocks.js',
            'app/js/**/*.js',
            'test/unit/**/*.js'
        ],

        autoWatch: true,
        singleRun: false,
        frameworks: ['jasmine'],

        browsers: ['Chrome'],

        plugins: [
            'karma-junit-reporter',
            'karma-chrome-launcher',
            'karma-firefox-launcher',
            'karma-jasmine'
        ],

        junitReporter: {
            outputFile: 'test_out/unit.xml',
            suite: 'unit'
        }

    })
}
4

4 回答 4

7

matthias-schuetz编写了一个声称可以生成 html 测试输出的插件。

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

除了插件页面上的说明外,我还必须在 Karma 配置中包含对插件的引用 -

plugins: [
'karma-htmlfile-reporter'
]
于 2013-10-08T13:44:18.200 回答
0

我想用 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:26.510 回答
0

使用 Karma 没有直接的方法可以做到这一点。解决这个问题的“最佳”方法是蹲下来为 karma 编写一个 html-reporter(这会让我们很多其他 Karma 用户非常高兴)。

如果这对您来说工作量太大,那么第二好的方法是使用生成 xml 文件的 junit 报告器。然后,您可以以某种方式对 xml 文件进行后处理,将其转换为 HTML 文件,然后您可以在浏览器中查看该文件

于 2013-09-16T13:34:54.307 回答
0

根据Documention,甚至不是很完美:

如果 'singleRun' 为 false,它将设置 ci-mode,因此,将其设置为 true,您将在浏览器的顶部栏中看到一些失败的红色状态。

于 2013-09-14T13:45:27.340 回答