カルマ カバレッジを使用して、typescript ソース ファイルのカバレッジ レポートを生成するのが好きです。私の単体テストは JavaScript で書かれており、Jasmine Test フレームワークを使用しています。
私のフォルダ構造は次のようになります。
node_modules/
app/
app.js
app.js.map
app.ts
components/
controllers/
SampleController.ts
directives/
filters/
services/
unittests/
karma.conf.js
components/
controllers/
SampleControllerTest.js
directives/
filters/
services/
私のkarma.conf.js
module.exports = function(config) {
config.set({
frameworks: ['jasmine'],
plugins: [
'karma-jasmine',
'karma-ng-html2js-preprocessor',
'karma-coverage',
'karma-phantomjs-launcher',
'karma-sourcemap-loader'
],
preprocessors: {
'../app/directives/controls/**/*Template.html' : [ 'ng-html2js' ],
// source files, that you wanna generate coverage for
// do not include tests or libraries
// (these files will be instrumented by Istanbul)
'../app/app.js' : ['sourcemap', 'coverage' ],
},
reporters: ['progress', 'coverage'],
// web server port
port: 9876,
coverageReporter: {
type : 'html',
dir : 'coverage/'
},
// and some other stuff
});
};
現在、私のカバレッジ レポートは十分なメトリクスを提供していますが、単一の typescript ファイルではなく app.js には関連していません。
プリプロセッサ構成で何かを台無しにしたか、ソースマップを指定する必要があると思います。
アニーのヒント?