获取Karma Coverage以使用Grunt打开报告

时间:2014-01-04 00:39:24

标签: unit-testing angularjs gruntjs karma-runner

Karma Coverage似乎会生成子文件夹中的覆盖范围,其名称如下:PhantomJS 1.9.2 (Mac OS X),无论如何要告诉它在与Grunt结合使用时打开该子文件夹?

目前,必须转到目录中复制目录名称,并在打开localhost:5555后将其粘贴,以便加载。

这可能不是什么大问题,但我正在努力削减复制和粘贴的步骤。

P.S。我已经在命令行中使用文本类型直接输出以便于访问,但我很乐意在需要时打开HTML覆盖率报告。

connect: {
  coverage: {
    options: {
      open: true,
      base: 'coverage/<<NEED TO GET THE DYNAMIC F>>',
      port: 5555,
      keepalive: true
    }
  }
}

unit_coverage: {
  configFile: 'karma.conf.js',
  autoWatch: false,
  singleRun: true,
  reporters: ['progress', 'coverage'],
  preprocessors: {
    'app/scripts/{,*/}*.js': ['coverage']
  },
  coverageReporter: {
    reporters: [
      {type : 'text'},
      {type: 'html', dir: '/coverage'}
    ]
  }
},

grunt.registerTask('coverage', [
  'karma:html_coverage',
  'connect:coverage'
]);

2 个答案:

答案 0 :(得分:1)

我希望能够为Chrome打开最新版本的业力报道(我测试了两个浏览器,但遇到了Emma Gou提到的错误)。这是一个快速而肮脏的解决方案,依赖于grunt文件扩展返回匹配文件的排序数组。可以添加明确的排序。

open: {
  server: {
    path: 'http://localhost:<%= connect.options.port %>'
  },
  coverage: {
    path: function () {
      var reports = grunt.file.expand('coverage/Chrome*/index.html');
      return reports[reports.length - 1].toString();
    }
  }
},

答案 1 :(得分:0)

根据 karma-runner 文档,您可以将 dir 指定为 coverageReporter ,它将用于存储生成的报告。< / p>