Comment utilisez-vous d'Istanbul de Couverture de Code avec transpiled Tapuscrit?

J'ai lu des articles sur ce toute la matinée à essayer d'obtenir mon environnement de l'installation correctement. Mais pour une raison que je ne suis pas à l'obtenir. Mon setup-

/app
    ... source (mixed js and ts)
/scripts
    ... copied source (js)
    typescripts.js //transpiled typescript with inline mapping

Tests de fonctionner correctement, et avec la cartographie de débogage dans le chrome débogueur est mappé correctement. Mais Istanbul voit le typescripts.js fichier comme un fichier, au lieu de la concaténation de plusieurs dizaines d'autres fichiers.

Pour générer le fichier d'enregistrement de la source, je suis en utilisant gulp-typescript. La source (à l'exclusion des tests) sont transpiled à ladite typescripts.js, et les tests sont transpiled individuellement et copié à /scripts.

  var ts = require('gulp-typescript');
  var sourcemaps = require('gulp-sourcemaps');
  var concat = require('gulp-concat');

  module.exports = function (gulp, config) {
     'use strict';

     //Runs dot ts files found in `www` through the typescript compiler and copies them as js 
     //files to the scripts directory

     gulp.task('typescript', ['typescript:tests'], function () {
        return gulp.src(config.paths.typescript) //[ './www/app/**/*.ts', '!./www/app/**/*.test.ts', '!./www/app/**/*.mock.ts' ]
           .pipe(sourcemaps.init())
           .pipe(ts(ts.createProject(config.paths.tsConfig))) //'./tsconfig.json'
           .js
           .pipe(concat(config.sourcemaps.dest)) //typescripts.js
           .pipe(sourcemaps.write(config.sourcemaps)) //{ includeContent: false, sourceRoot: '/app' } - i've also tried absolute local path
           .pipe(gulp.dest(config.paths.tmpScripts)); //./www/scripts


     });

     gulp.task('typescript:tests', [], function() {
        return gulp.src(config.paths.typescriptTests) //[ './www/app/**/*.test.ts', './www/app/**/*.mock.ts' ]
           .pipe(ts(ts.createProject(config.paths.tsConfig))) //'./tsconfig.json'
           .pipe(gulp.dest(config.paths.tmpScripts)); //./www/scripts
     });
  };

L'résultant typescripts.js a la ligne sourcemap. Avec le sourcemap, la douzaine de fichiers ts résultats dans 106ko.

Donc, à partir d'ici, les tests et le débogage fonctionne très bien.

Maintenant dans une tentative pour obtenir Istanbul de couverture de code fonctionne correctement, je l'ai installé karma-sourcemap-loader et de l'ajouter à la préprocesseurs.

preprocessors: {
    'www/scripts/typescripts.js': ['sourcemap'],
    'www/scripts/**/*.js': ['coverage']
},

J'avais pense que c'est ce que j'avais besoin de le faire. Mais il ne montre pas de couverture de code dans les fichiers source. J'ai essayé le chemin absolu de C:/ mais cela ne fonctionne pas non plus. J'ai aussi essayé les différentes options dans gulp-sourcemaps comme l'ajout de la source (qui a poussé le fichier de 160 ko), mais pas de soit.

Quelqu'un a eu cela fonctionne? Toutes les idées que j'ai pu faire de mal?

InformationsquelleAutor micah | 2015-12-01