Karma: 3 - 測試覆蓋率


karma 的插件 karma-coverage 提供了測試代碼覆蓋率的支持。

karma 的頁面:http://karma-runner.github.io/0.8/config/coverage.html 進行了說明。karma 使用 Istanbul.實現覆蓋率統計。

首先你需要安裝這個 Karma 插件,然后需要在配置文件的三個地方進行配置。

安裝 karma-coverage

當然了,你必須安裝這個組件才能完成覆蓋率統計。可以看到,在安裝這個插件的時候,已經安裝了 Istanbul 。 

npm i -D karma-coverage
├─┬ karma@0.13.21
│ ├─┬ log4js@0.6.31
│ │ └── semver@4.3.6
│ └─┬ optimist@0.6.1
│   ├── minimist@0.0.10
│   └── wordwrap@0.0.3
└─┬ karma-coverage@0.5.3
  ├─┬ dateformat@1.0.12
  │ └─┬ meow@3.7.0
  │   ├── minimist@1.2.0
  │   └─┬ normalize-package-data@2.3.5
  │     └── semver@5.1.0
  └─┬ istanbul@0.4.2
    ├─┬ escodegen@1.7.1
    │ └─┬ optionator@0.5.0
    │   └── wordwrap@0.0.3
    └── wordwrap@1.0.0

配置

涉及三個配置信息,兩個是必須的,一個是可選的。

配置預處理器

這里配置哪些文件需要統計測試覆蓋率,例如,如果你的所有代碼文件都在 lib 文件夾中,你就需要如下配置。

preprocessors = {
  '**/lib/*.js': 'coverage'
};

 

注意不要包含你所依賴的庫,測試文件等等,下面就是一個錯誤的配置信息。

files = [
  JASMINE,
  JASMINE_ADAPTER,
  'lib/*.js',
  'test/*.js'
];
preprocessors = {
  '**/*.js': 'coverage'
};

 

 

配置報告

在配置文件中包含下面的信息來激活覆蓋率報告器。

reporters = ['coverage'];

 

這樣將會對每個瀏覽器創建一個覆蓋率報告,另外,它還會創建一個 Json 文件,其中包含輸出的中間數據。

配置報告選項

默認的報告格式如下:

coverageReporter = {
  type : 'html',
  dir : 'coverage/'
}

 

type 是一個字符串值,取值可以是:

  • html (default)
  • lcov (lcov and html)
  • lcovonly
  • text
  • text-summary
  • cobertura (xml format supported by Jenkins)

 dir 則用來配置報告的輸出目錄。如果是一個相對路徑的話,將相對與 basePath 參數。

如果類型是 text 或者 text-summary,你可以配置 file 參數來指定保存的文件名。

coverageReporter = {
  type : 'text',
  dir : 'coverage/',
  file : 'coverage.txt'
}

 

 如果沒有文件名,就會輸出到控制台。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM