2017-08-01 2 views
1

Veuillez accueillir, j'ai transpile mon code de es6 à es5 en utilisant gulp comme un coureur de tâches. J'ai fait mon rapport de couverture avec Istanbul. Il ne montre pas la couverture de test après l'avoir configuré. ci-dessous est mon codeComment puis-je utiliser Gulp pour montrer la couverture de test en utilisant gulp-mocha

import gulp from 'gulp'; 
import loadPlugins from 'gulp-load-plugins'; 
import path from 'path'; 
import mocha from 'gulp-mocha'; 
import exit from 'gulp-exit'; 
import coveralls from 'gulp-coveralls'; 
import cover from 'gulp-coverage'; 

charge les plugins Gulp dans la variable plugins

const plugins = loadPlugins(); 

gulp.task('tests',() => { 
    gulp.src('./server/tests/*.js') 
    .pipe(plugins.babel()) 
    .pipe(mocha()) 
    .pipe(exit()); 
}); 

Compile tous Babel Javascript dans ES5 et lieu dans le dossier dist

const paths = { 
    js: ['./**/*.js', '!dist/**', '!node_modules/**'] 
}; 

Compile tous Babel Javascript dans ES5 et le mettre dans la dir dist

gulp.task('babel',() => 
    gulp.src(paths.js, { base: '.' }) 
    .pipe(plugins.babel()) 
    .pipe(gulp.dest('dist')) 
); 

gulp.task('coverage',() => { 
    gulp.src('server/test/**/*.js', { read: false }) 
    .pipe(cover.instrument({ 
    pattern: ['server/controllers/**/*.js'], 
     debugDirectory: 'debug' 
    })) 
    .pipe(mocha()) 
    .pipe(cover.gather()) 
    .pipe(cover.format()) 
    .pipe(gulp.dest('reports')); 
}); 

gulp.task('coveralls',() => gulp.src('./coverage/lcov') 
    .pipe(coveralls())); 

Redémarrez le serveur avec sur tous les modifications apportées au fichier

gulp.task('nodemon', ['babel'],() => 
    plugins.nodemon({ 
    script: path.join('dist', 'index.js'), 
    ignore: ['README.md', 'node_modules/**/*.js', 'dist/**/*.js'], 
    ext: 'js', 
    tasks: ['babel'] 
    }) 
); 

gulp.task('test', ['tests']); 
gulp.task('default', ['nodemon']); 
gulp.task('production', ['babel']); 
+0

Ce qui ne montre pas le rapport de couverture après la mise en vers le haut? Qu'Est-ce que c'est'? – user2347763

Répondre

1

Les extraits suivants à pied à la façon dont je l'ai résolu cette question avec une petite modification.

mis le code suivant en vous gulpfile

import gulp from 'gulp'; 
import loadPlugins from 'gulp-load-plugins'; 
import path from 'path'; 
import shell from 'gulp-shell'; 

// Load the gulp plugins into the `plugins` variable 
const plugins = loadPlugins(); 

// Compile all Babel Javascript into ES5 and place in dist folder 
const paths = { 
    js: ['./**/*.js', '!dist/**', '!node_modules/**', 
    '!./server/tests/**'] 
}; 

// Compile all Babel Javascript into ES5 and put it into the dist dir 
gulp.task('babel',() => 
    gulp.src(paths.js, { base: '.' }) 
    .pipe(plugins.babel()) 
    .pipe(gulp.dest('dist')) 
); 

gulp.task('migrate', shell.task([ 
    'cross-env NODE_ENV=test sequelize db:migrate', 
])); 

gulp.task('coverage', shell.task([ 
    'cross-env NODE_ENV=test nyc mocha ./server/test/**/*.js', 
])); 

// Restart server with on every changes made to file 
gulp.task('nodemon', ['babel'],() => 
    plugins.nodemon({ 
    script: path.join('dist', 'index.js'), 
    ignore: ['README.md', 'node_modules/**/*.js', 'dist/**/*.js'], 
    ext: 'js', 
    tasks: ['babel'] 
    }) 
); 

gulp.task('test', ['migrate', 'coverage']); 
gulp.task('default', ['nodemon']); 
gulp.task('production', ['babel']); 

puis passez sur votre package.json puis ajoutez ce qui suit

"nyc": { 
    "require": [ 
     "babel-register" 
    ], 
    "reporter": [ 
     "lcov", 
     "text", 
     "html" 
    ], 
    "sourceMap": false, 
    "instrument": false, 
    "exclude": [ 
     "the test file you want to exclude from coverage" 
    ] 
    } 

absolument fait