この gulp タスクはオンラインでハングしexec('node config/app')
ます。最初exec
は正常に動作しますが、2番目はハングします。
gulp.task('test', function(cb) {
var exec = require('child_process').exec;
exec('echo 3', function(err, stdout) {
console.log(stdout);
});
exec('node config/app', function(err, stdout, stderr) {
console.log(stdout);
var testemOptions = {
file: 'testem.json'
};
var t = new testem();
return t.startCI(testemOptions, function() {
cb();
});
});
});
出力は表示されます3
が、2 番目の出力は表示されませんconsole.log
。
testem でテストを実行する前に、サーバーを実行しようとしています。
私はこの同様の解決策を試しましたが、うまくいきません: nodejs で git shortlog を実行しようとすると Exec が何も返さない。
また、私は最近、ぶら下がっている testem gulp タスクの質問をしました: Testem gulp task hangs after finished。
編集:
私の現在の解決策は次のとおりです。
gulp.task('test', /*['build'],*/ function(cb) {
var spawn = require('child_process').spawn;
var proc = spawn('node', ['config/app']);
proc.stdout.on('readable', function() {
var output = proc.stdout.read();
if (output && output.toString().match('express listening')) {
var testemOptions = {
file: 'testem.json'
};
var t = new testem();
t.startCI(testemOptions, function() {
proc.kill();
cb();
});
}
});
});