0

この gulp タスクは終了しても終了しません。手動で Ctrl-C を押して終了する必要があります。

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

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

    var t = new testem();

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

このタスクを適切に終了するにはどうすればよいですか?

注: 実際には自動的に終了しますが、終了してから 15 秒ほどかかります。

出力:

[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
4

1 に答える 1

1

を使用して問題を再現Chromium launcherできましたが、 と同じである必要がありPhantomJSます。の終了と の実際の終了との間には確かに15sec CPU遅延があります。taskprocess

> 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

タスクに設定したを削除し、これをパラメーターとして使用しないにdone callback渡すことにより、startCI

var testem = require('testem');

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

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

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

});

タスクは期待どおりに実行され、終了時に適切に終了します。

> 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

ところで、これができるかどうかわかりません。fileプロパティを持つオブジェクトを に渡すだけです。データを使用して解析して構成startCIファイルを読み込んで、内部で指定した構成パラメーターを使用して起動する必要があると思いました。fs.readFileJSONtestemtestem.json

もう 1 つ、gulp プラグインgulp-testemを試す機会はありませんでしたが、役立つかもしれません。

于 2014-08-01T22:39:57.433 に答える