Angularjs 向覆盖率测试结果添加构建版本信息的任何简单方法

Angularjs 向覆盖率测试结果添加构建版本信息的任何简单方法,angularjs,gruntjs,karma-runner,karma-coverage,Angularjs,Gruntjs,Karma Runner,Karma Coverage,我正在使用karma覆盖率来衡量我的项目中的单元测试覆盖率,在这方面一切都很好。我使用HTML reporter进入默认目录 但是,我需要使用grunt git Descripte“标记”覆盖率报告的构建版本信息,grunt git Descripte当前用于加载结果version.json文件的AngularJS应用程序页脚。在karma coverage的html报告中,我没有找到任何直接的方法来使用这个version.json文件。所以,如果有人知道怎么做,我会非常感激 提前谢谢 我确实通

我正在使用karma覆盖率来衡量我的项目中的单元测试覆盖率,在这方面一切都很好。我使用HTML reporter进入默认目录

但是,我需要使用grunt git Descripte“标记”覆盖率报告的构建版本信息,grunt git Descripte当前用于加载结果version.json文件的AngularJS应用程序页脚。在karma coverage的html报告中,我没有找到任何直接的方法来使用这个version.json文件。所以,如果有人知道怎么做,我会非常感激


提前谢谢

我确实通过一种变通方法实现了这一点。在运行karma之后,我在grunt中使用文本替换模块来执行此操作。如果有人有更好的解决方案,请分享,因为这是一个有点黑客,但它的工作正常。当karma coverage在我的环境中的html报告转到项目的根目录/coverage/文件夹时,我将递归文本替换到每个.html文件中,查找默认页脚并在其中添加我的版本信息

首先,安装grunt文本替换

$ npm install grunt-text-replace --save-dev
然后我在gruntfile.js中创建了以下替换函数:

grunt.initConfig({
    replace: {
        coverage: {
            src: ['coverage/**/*.html'],
            overwrite: true,
            replacements: [
            {
                from: '<div class="meta">Generated by',
                to: function(){return grunt.config.get('task.replace.versionString');}
            }
            ]
        }
    },
// and your other stuff in initConfig()
grunt.initConfig({
替换:{
覆盖范围:{
src:['coverage/***/.html'],
改写:对,
替换:[
{
from:'由'',
to:function(){return grunt.config.get('task.replace.versionString');}
}
]
}
},
//以及initConfig()中的其他内容
为此,我在grunt中添加了一个新任务:

grunt.registerTask('coverage', 'Adds version info to coverage results', function(){
    grunt.task.requires('version'); // The 'version' task creates a 'version.json' file
    var vers = grunt.file.readJSON('version.json');
    // Set the desired string to be used in text-replace -function
    grunt.config.set('task.replace.versionString', '<div class="meta">Version ' + vers.version + ', Tag "' + vers.revision[0] + '"<br>Generated by');
    grunt.task.run(['replace']);
});
grunt.registerTask('coverage','Addversioninfo to coverage results',function(){
grunt.task.requires('version');//version任务创建一个'version.json'文件
var vers=grunt.file.readJSON('version.json');
//设置要在文本替换-函数中使用的所需字符串
grunt.config.set('task.replace.versionString','Version'+vers.Version+',标记“'+vers.revision[0]+'”
生成者”); run(['replace']); });
有点难看,但很有魅力;-)