【问题标题】:Karma-coverage : Object has no method isIdentifierPart业力覆盖:对象没有方法 isIdentifierPart
【发布时间】:2015-10-29 07:14:15
【问题描述】:

我想使用 Karma 对我的 JQuery Mobile 项目进行代码覆盖,并使用 QUnit 或 Jasmine 进行测试。
我已经安装了我需要的所有节点包(karma、karma-cli、karma-coverage、jasmine/qunitjs、karma-chrome-launcher)并创建了以下 karma.conf 文件:

karma.conf.js

// Karma configuration
module.exports = function(config) {
config.set({
    basePath: '',
    frameworks: ['jasmine'],
    files: [
        'absence.js',
        'absence.test.js'
    ],
    exclude: [
    ],
    preprocessors: {
     'absence.js': ['coverage']
    },
    reporters: ['progress', 'coverage'],
    coverageReporter: {
        type : 'html',
        dir: 'coverage/'
    },
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
  })
}

还有这个测试文件(带有 Jasmine):

absence.test.js

describe("A suite", function() {
  it("contains spec with an expectation", function() {
    expect(true).toBe(true);
  });
});

我在我的项目上启动业力启动,我的缺席.js 文件仅包含此功能:

function test() {
    var foo = 'bar';
}

它工作正常,生成了我的覆盖率报告,并指出我的缺席.js 文件中覆盖了 50% 的代码。

但是如果我使用“if”语句修改我的函数:

function test() {
    if (1 == 1){
       var foo = "bar";
    }
}

我在控制台出现以下错误:

ERROR [preprocessor.coverage]: Object [object Object] has no method 'isIdentifierPart'

实际上,如果我使用任何条件语句或循环,我就会得到这个错误。 我的业力配置有问题吗?

编辑

我重新安装了 Node.js 和所有 karma 包,它终于可以工作了,但现在我有一个奇怪的问题:所有生成的 html 文件都放在我的源目录中,即使我指定了 coverageReporter 目录...
有什么想法吗?

【问题讨论】:

    标签: code-coverage karma-runner karma-jasmine istanbul karma-coverage


    【解决方案1】:

    使用以前版本的 karma-coverage 包,我不再遇到问题了。我已经卸载了最新版本(0.5.0)并安装了 0.2.7。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 2019-02-08
      • 2013-05-09
      • 2017-01-07
      • 2014-08-17
      • 2015-10-06
      相关资源
      最近更新 更多