Karma-coverage:对象没有方法isIdentifierPart

时间:2015-08-06 08:31:48

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

我想在我的JQuery Mobile项目和QUnit或Jasmine上使用Karma进行代码覆盖测试 我已经安装了我需要的所有节点包(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);
  });
});

我在项目上启动业力开始,我的absence.js文件只包含此功能:

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

并且它工作正常,我的覆盖率报告生成并指示我的absence.js文件中涵盖的代码的50%。

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

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

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

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

实际上,如果我使用任何conditionnal语句或循环,我会收到此错误。 我的业力配置有问题吗?

修改

我重新安装了Node.js和所有业力包,它终于有效但现在我有一个奇怪的问题:所有生成的html文件都放在我的源目录中,如果我指定了一个coverageReporter目录,则为evn ...
有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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