首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将构建版本信息添加到覆盖率测试结果的任何简单方法

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

Stack Overflow用户
提问于 2014-12-16 19:48:50
回答 1查看 530关注 0票数 1

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

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

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-12-18 14:50:43

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

首先,安装grunt text-replace

代码语言:javascript
复制
$ npm install grunt-text-replace --save-dev

然后我在gruntfile.js中做了一个替换函数:

代码语言:javascript
复制
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中添加了一个新任务:

代码语言:javascript
复制
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']);
});

有点难看,但效果很好;-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27503967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档