业力覆盖:对象没有方法 isIdentifierPart
Posted
技术标签:
【中文标题】业力覆盖:对象没有方法 isIdentifierPart【英文标题】:Karma-coverage : Object has no method 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 目录... 有什么想法吗?
【问题讨论】:
【参考方案1】:使用以前版本的 karma-coverage 包,我不再遇到问题了。我已经卸载了最新版本(0.5.0)并安装了 0.2.7。
【讨论】:
以上是关于业力覆盖:对象没有方法 isIdentifierPart的主要内容,如果未能解决你的问题,请参考以下文章