La tâche Testem gulp se bloque une fois terminée
-
21-12-2019 - |
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
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.