[关闭]
@wangxingkang 2017-06-20T05:49:28.000000Z 字数 3334 阅读 4975

karma插件之karma-coverage

karma test


目录:


karma-coverage

项目地址: karma-coverage

使用istanbul生成代码覆盖率

翻译不当之处请指出

安装

配置

type

dir

subdir

  1. coverageReporter: {
  2. dir: 'coverage',
  3. subdir: '.'
  4. // 将结果输出到'./coverage/'
  5. }
  1. coverageReporter: {
  2. dir: 'coverage',
  3. subdir: 'report'
  4. // 将结果输出到'./coverage/report/'
  5. }
  1. coverageReporter: {
  2. dir: 'coverage',
  3. subdir: function(browser) {
  4. return browser.toLowerCase().split(/[ /-]/)[0];
  5. }
  6. // 将结果输出到: './coverage/firefox/'
  7. }

file

check

  1. coverageReporter: {
  2. check: {
  3. global: {
  4. statements: 50,
  5. branches: 50,
  6. functions: 50,
  7. lines: 50,
  8. excludes: [
  9. 'foo/bar/**/*.js'
  10. ]
  11. },
  12. each: {
  13. statements: 50,
  14. branches: 50,
  15. functions: 50,
  16. lines: 50,
  17. excludes: [
  18. 'other/directory/**/*.js'
  19. ],
  20. overrides: {
  21. 'baz/component/**/*.js': {
  22. statements: 98
  23. }
  24. }
  25. }
  26. }
  27. }

watermarks

  1. coverageReporter: {
  2. watermarks: {
  3. statements: [ 50, 75 ],
  4. functions: [ 50, 75 ],
  5. branches: [ 50, 75 ],
  6. lines: [ 50, 75 ]
  7. }
  8. }

includeAllSources

  1. coverageReporter: {
  2. type : 'text',
  3. dir : 'coverage/',
  4. file : 'coverage.txt',
  5. includeAllSources: true
  6. }

sourceStore

  1. coverageReporter: {
  2. type : 'text',
  3. dir : 'coverage/',
  4. file : 'coverage.txt',
  5. sourceStore : require('istanbul').Store.create('fslookup')
  6. }

reporters

  1. coverageReporter: {
  2. reporters:[
  3. {type: 'html', dir:'coverage/'},
  4. {type: 'teamcity'},
  5. {type: 'text-summary'}
  6. ],
  7. }

instrumenter

useJSExtensionForCoffeeScript

reporter[type='in-memory']

这是一个不同的reporter。它不是物理的将报告写入磁盘,而是会触发一个coverage_complete事件。这个事件只能通过karma使用公共API才能被捕获。

例子

基本

  1. // karma.conf.js
  2. module.exports = function(config) {
  3. config.set({
  4. files: [
  5. 'src/**/*.js',
  6. 'test/**/'
  7. ],
  8. reporters: ['progress', 'coverage'],
  9. preprocessors: {
  10. 'src/**/*.js': ['coverage']
  11. },
  12. coverageReporter: {
  13. type: 'html',
  14. dir: 'coverage/'
  15. }
  16. })
  17. }

高级的,多个reporters

  1. // karma.conf.js
  2. module.exports = function(config) {
  3. config.set({
  4. files: [
  5. 'src/**/*.js',
  6. 'test/**/*.js'
  7. ],
  8. reporters: ['progress', 'coverage'],
  9. preprocessors: {
  10. 'src/**/*.js': ['coverage']
  11. },
  12. coverageReporter: {
  13. // specify a common output directory
  14. dir: 'build/reports/coverage',
  15. reporters: [
  16. // reporters not supporting the `file` property
  17. { type: 'html', subdir: 'report-html' },
  18. { type: 'lcov', subdir: 'report-lcov' },
  19. // reporters supporting the `file` property, use `subdir` to directly
  20. // output them in the `dir` directory
  21. { type: 'cobertura', subdir: '.', file: 'cobertura.txt' },
  22. { type: 'lcovonly', subdir: '.', file: 'report-lcovonly.txt' },
  23. { type: 'teamcity', subdir: '.', file: 'teamcity.txt' },
  24. { type: 'text', subdir: '.', file: 'text.txt' },
  25. { type: 'text-summary', subdir: '.', file: 'text-summary.txt' },
  26. ]
  27. }
  28. });
  29. };
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注