Comment exécuter la deuxième tâche uniquement lorsque la tâche de test de karma réussit avec Gulp ?

StackOverflow https://stackoverflow.com//questions/22001368

  •  20-12-2019
  •  | 
  •  

Question

J'utilise Gulp.j'ai un deploy tâche qui s'exécute après test tâche.Le problème est que deploy la tâche s'exécute même si le test échoue.Y a-t-il un moyen de courir deploy tâche uniquement lorsque les tests réussissent dans gulp ?

gulp.task('test', function() {
  return gulp.src('some_test_tile')
    .pipe(karma({
      configFile: 'karma.conf.js',
      action: 'run'
    }));
});

gulp.task('deploy', ['test'], function() {
  return gulp.src(paths.scripts)
    .pipe(gulp.dest(paths.dest));
});

j'utilise gulp-karma pour exécuter des tests Karma.

Était-ce utile?

La solution

Le exemple de gulp-karma dit d'ajouter .on('error', ...) après le canal vers karma et de lancer manuellement l'erreur pour garantir que gulp sort non nul si des tests échouent.Ça devrait le faire.

Autres conseils

Vos tâches sont-elles exécutées avant que les dépendances ne soient terminées ?Assurez-vous que vos tâches de dépendance s'exécutent correctement à l'aide des conseils d'exécution asynchrone.

Les tâches peuvent être rendues asynchrones si cela est fn effectue l'une des opérations suivantes :

  • Accepter un rappel
  • Renvoyer un flux
  • Renvoyer une promesse

Voir exemple sur Documentation API

var gulp = require('gulp');

// takes in a callback so the engine knows when it'll be done
gulp.task('one', function (cb) {
    // do stuff -- async or otherwise
    cb(err); // if err is not null and not undefined, the run will stop, and note that it failed
});

// identifies a dependent task must be complete before this one begins
gulp.task('two', ['one'], function () {
    // task 'one' is done now
});

gulp.task('default', ['one', 'two']);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top