将 karma-coverage 添加到 ember 测试

Posted

技术标签:

【中文标题】将 karma-coverage 添加到 ember 测试【英文标题】:Add karma-coverage to ember test 【发布时间】:2015-01-09 10:25:49 【问题描述】:

我发现了这个非常棒的 ember 测试样本:

https://github.com/toranb/ember-testing-example

让它运行,但我无法让业力覆盖工作,这是错误:

错误 [coverage]: [TypeError: Cannot set property 'covered' of undefined] TypeError:无法设置未定义的属性“覆盖”

我只更新了 karma.conf.js 文件以及 package.json

package.json


  "dependencies": 
    "bower": "*",
    "karma-ember-preprocessor": "*",
    "karma-qunit": "*",
    "karma": "0.10",
    "karma-coverage": "~0.1"
  ,
  "scripts": 
    "postinstall": "bower install"
  

karma.conf.js

module.exports = function(karma) 
    karma.set(
        basePath: 'js',

        files: [
          "vendor/jquery/jquery.min.js",
          "vendor/handlebars/handlebars.js",
          "vendor/ember/ember.js",
          "vendor/jquery-mockjax/jquery.mockjax.js",
          "app.js",
          "tests/*.js",
          "templates/*.handlebars"
        ],

        // coverage reporter generates the coverage
        reporters: ['progress', 'coverage'],

        //logLevel: karma.LOG_ERROR,
        logLevel: karma.LOG_DEBUG,
        browsers: ['PhantomJS'],
        singleRun: true,
        autoWatch: true,

        frameworks: ["qunit"],

        plugins: [
            'karma-qunit',
            'karma-coverage',
            'karma-chrome-launcher',
            'karma-ember-preprocessor',
            'karma-phantomjs-launcher'
        ],

        preprocessors: 
            "**/*.handlebars": ['ember','coverage']
        ,

        // optionally, configure the reporter
        coverageReporter: 
            type : 'html',
            dir  : 'coverage/'
        
    );
;

请让我知道我缺少什么。我怀疑我没有正确配置它,这条线可能是问题所在。

    preprocessors: 
        "**/*.handlebars": ['ember','coverage']
    ,

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

preprocessors: 
        "**/*.handlebars": 'ember',
        "**/*.js": 'coverage'
    ,

以上允许您从 Karma 创建覆盖率报告。

注意:这种配置不适用于最新的 ES6 模块

【讨论】:

以上是关于将 karma-coverage 添加到 ember 测试的主要内容,如果未能解决你的问题,请参考以下文章

将来自 karma-coverage 的 istanbul 测试覆盖率与来自其他来源的覆盖率合并

.Karma+Jasmine+karma-coverage

ClientLibraryFolder 类型的 embed[] 和 dependencies[] 有啥区别?

Karma-Browserify + Karma-Coverage 的问题

Karma-coverage 检查 JS 文件中的测试覆盖率,而不是 Angular 2 中的 TS

KarmaJS 中的代码覆盖率过高,具有 karma-coverage 和 Jasmine