Node.js 为jasmine测试生成代码覆盖率报告(通过grunt)在phantomjs中的browserify包上运行
标题真的说明了一切。尽管我浏览了互联网,但还没有找到一个解决这个问题的例子 这里有一些未遂事件Node.js 为jasmine测试生成代码覆盖率报告(通过grunt)在phantomjs中的browserify包上运行,node.js,gruntjs,phantomjs,browserify,istanbul,Node.js,Gruntjs,Phantomjs,Browserify,Istanbul,标题真的说明了一切。尽管我浏览了互联网,但还没有找到一个解决这个问题的例子 这里有一些未遂事件 -咕噜、布劳塞里菲和茉莉 -布朗塞里菲和伊斯坦布尔 这是我正在编写的代码(请注意,它是'browserify'分支-Gruntfile.js有点乱,但很快就会整理好)。我最初使用console.log进行的调查表明,bundle.src.js以某种方式加载到页面中,但是当测试运行(并通过!)时,bundle.src.js中的代码没有运行,所以我感觉可能是一个别名问题。。。虽然当我在chrome中打
- -咕噜、布劳塞里菲和茉莉
- -布朗塞里菲和伊斯坦布尔
这是我正在编写的代码(请注意,它是'browserify'分支-Gruntfile.js有点乱,但很快就会整理好)。我最初使用
console.log
进行的调查表明,bundle.src.js
以某种方式加载到页面中,但是当测试运行(并通过!)时,bundle.src.js
中的代码没有运行,所以我感觉可能是一个别名问题。。。虽然当我在chrome中打开specrunner时,只限于phantomjs,但代码正在运行。我正在使用grunt browserify
+browserify istanbul
+grunt contrib jasmine
+grunt模板jasmine istanbul
作为解决方案。在使用browserify
构建源文件时,此解决方案还排除了第三方库
先显示代码,我稍后解释
grunt.initConfig({
browserify: {
// build specs using browserify
specs: {
src: ["spec/**/*Spec.js"],
dest: "spec/build/specs.js",
options: {
debug: true
}
},
// build source files using browserify and browserify-istanbul
dev: {
options: {
debug: true,
browserifyOptions: {
standalone: 'abc'
},
transform: [['browserify-istanbul', {
ignore: ['**/node_modules/**'], // ignore third party libs
defaultIgnore: true
}]]
},
src: ['abc.js'],
dest: 'dist/abc.js'
}
},
connect: {
server: {
options: {
port: 7000
}
}
},
// test using jasmine, generate coverage report using istanbul
jasmine: {
coverage: {
src: ['dist/abc.js'],
options: {
junit: {
path: 'bin/junit'
},
host: 'http://localhost:7000/',
specs: 'spec/build/specs.js',
keepRunner: true,
summary: true,
template: require('grunt-template-jasmine-istanbul'),
templateOptions: {
replace: false, // *** this option is very important
coverage: 'bin/coverage/coverage.json',
report: [
{
type: 'html',
options: {
dir: 'spec/coverage/html'
}
}]
}
}
}
}
grunt.registerTask('specs', ['browserify:specs', 'browserify:dev', 'connect', 'jasmine']);
生成伊斯坦布尔覆盖率报告的步骤可归纳为三个步骤:
browerify伊斯坦布尔
,在步骤2和3中使用grunt contrib jasmine
和runt template jasmine伊斯坦布尔
browserify伊斯坦布尔
将允许您在browserify构建步骤中插入代码,这样,我们可以轻松忽略第三方LIB。但是grunt模板jasmine istanbul
将再次输入代码。为了避免这种情况,您可以在选项中将replace
设置为false
参考文献:
替换
选项你找到这个了吗?它目前是否在戒备项目中起作用?当这个问题在这里已经三年没有答案时,它意味着什么。。。