テストに合格していても、レポーターを使用できるようにしたいのですがhtml-cov
、すべてのカバレッジ値が 0 です。
私はインストルメント化されたコードとテスト用の mocha を作成するためにイスタンブールの Grunt を使用しています。これは私の grunt ファイルです
module.exports = (grunt) ->
release = (type = 'develop') ->
switch type
when 'master'
grunt.task.run('release')
else
grunt.config.set('release',
options:
tag : false
pushTags: false
npm : false
)
grunt.task.run('release')
return
grunt.initConfig
pkg: grunt.file.readJSON 'package.json'
covervars:
base : 'tests/lib-cov'
build : '<%=covervars.base %>/build'
reports: '<%=covervars.base %>/reports'
watch:
coffee:
files: ['./src/**/*.coffee', './tests/**/*.spec.coffee']
tasks: ['build']
coffee:
compile:
options:
bare: true
expand : true
cwd : 'src'
src : '**/*.coffee'
dest : 'lib'
ext : '.js'
clean:
coverage: [
'<%=covervars.base %>/*'
]
instrument:
files : './lib/**/*.js'
options:
basePath: '<%=covervars.build %>/'
reloadTasks:
rootPath: '<%=covervars.build %>/lib/'
storeCoverage:
options:
dir: '<%=covervars.reports %>/'
makeReport:
src : '<%=covervars.reports %>/**/*.json'
options:
type : 'lcov',
dir : '<%=covervars.reports %>',
print: 'detail'
cafemocha:
test:
src : './tests/server/**/*.spec.coffee'
options:
require : ['./tests/common.coffee','./lib/']
ignoreLeaks: false
checkLeaks : true
colors : true
ui : 'bdd',
reporter : 'dot'
coverage:
src : './tests/server/**/*.spec.coffee'
options:
require : ['./tests/common.coffee','./<%=covervars.build %>/lib/']
globals : ['__coverage__']
ignoreLeaks: false
colors : true
ui : 'bdd',
reporter : 'spec'
coverage :
output: 'tests/lib-cov/coverage.html'
karma:
options :
configFile: 'tests/client/karma.conf.js'
unit :
browsers : ['Firefox']
singleRun: true
continuous:
browsers : ['Firefox', 'Chrome']
singleRun: false
grunt.loadNpmTasks 'grunt-release'
grunt.loadNpmTasks 'grunt-karma'
grunt.loadNpmTasks 'grunt-contrib-watch'
grunt.loadNpmTasks 'grunt-contrib-coffee'
grunt.loadNpmTasks 'grunt-cafe-mocha'
grunt.loadNpmTasks 'grunt-contrib-clean'
grunt.loadNpmTasks 'grunt-istanbul'
grunt.registerTask 'test', ['cafemocha:test']
grunt.registerTask 'cover', [
'coffee', 'clean',
'instrument',
#'reloadTasks',
'cafemocha:coverage',
#'storeCoverage', 'makeReport'
]
grunt.registerTask 'test:continuous', ['karma:continuous']
grunt.registerTask 'build', ['coffee', 'test']
grunt.registerTask 'releaseit', release
grunt.registerTask 'default', ['watch']
インストルメント化されたコードは次のようになります: http://pastebin.com/3wAt5VZT
istanbul lcov.info ファイルの一部 (正しく生成されたもの)
TN:
SF:./lib/index.js
FNF:0
FNH:0
DA:1,1
DA:2,1
DA:10,1
DA:12,1
DA:14,1
DA:16,1
DA:18,1
DA:20,1
DA:22,1
DA:24,1
LF:10
LH:10
BRF:0
BRH:0
end_of_record
mocha はテスト カバレッジを取得していないようですが、有効にするstoreCoverage
とmakeReport
、instabul は正しいファイル数と各ファイルで使用されているコードの割合を表示します。モカはjscoverageからのカバレッジのみを使用できますか? そうでない場合、手順が不足していますか?