Question

Cette tâche Gulp ne sort pas après la fin, je dois appuyer sur manuellement Ctrl-C pour quitter.

gulp.task('test', function(done) {
    var testem = require('testem');

    var testemOptions = {
        file: 'testem.json'
    };

    var t = new testem();

    t.startCI(testemOptions, done);
});

Comment puis-je terminer cette tâche correctement ?

Note:En fait, il se termine tout seul, mais cela prend environ 15 secondes après avoir terminé.

Sortir:

[15:49:59] Using gulpfile ~/gulpfile.js
[15:49:59] Starting 'test'...
ok 1 PhantomJS 1.9 - Integration Tests: Home Index Page

1..3
# tests 3
# pass  3
# fail  0

# ok
[15:50:00] Finished 'test' after 1.33 s
Était-ce utile?

La solution

Réussi à reproduire votre problème en utilisant le Chromium launcher, mais ça devrait être pareil avec PhantomJS.Il y a effectivement un 15sec CPU délai entre la fin de la task et la sortie effective du process.

> time gulp testem
Starting 'testem'...
ok 1 Chrome 32.0 - sass: link
ok 2 Chrome 32.0 - Unit - HomeRoute: exists
ok 3 Chrome 32.0 - Unit - HomeRoute: #model
ok 4 Chrome 32.0 - Unit - HomeRoute: redirect

1..4
# tests 4
# pass  4
# fail  0

# ok
Finished 'testem' after 938 ms
gulp testem  1.27s user 0.25s system 9% cpu 16.581 total

En supprimant le done callback vous vous êtes mis à la tâche et vous avez transmis à startCI qui ne prend pas ça comme paramètre,

var testem = require('testem');

gulp.task('test', function () {

  var testemOptions = {
    file: 'testem.json'
  };

  var t = new testem();
  return t.startCI(testemOptions);

});

la tâche s'exécute comme prévu et se termine correctement à la fin :

> time gulp testem
Starting 'testem'...
ok 1 Chrome 32.0 - sass: link
ok 2 Chrome 32.0 - Unit - HomeRoute: exists
ok 3 Chrome 32.0 - Unit - HomeRoute: #model
ok 4 Chrome 32.0 - Unit - HomeRoute: redirect

1..4
# tests 4
# pass  4
# fail  0

# ok
gulp testem  1.26s user 0.19s system 91% cpu 1.582 total

Au fait, je ne sais pas si vous pouvez faire cela, passez simplement un objet avec un file propriété à startCI, j'ai pensé que vous devriez lire le fichier de configuration en utilisant fs.readFile et analyser ses données dans JSON lancer testem en utilisant les paramètres de configuration que vous avez fournis à l'intérieur testem.json.

Encore une chose, il existe un plugin gulp, gorgée-testem que je n'ai pas eu l'occasion d'essayer, mais qui peut être utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top