Grunt并发任务没有输出结果

4
我希望我的基于Grunt的设置能够同时运行“test”(即单元测试)和“server”(即Web服务器),这样我就可以只需在同一个终端中执行grunt testAndServer来运行两者(并在任何文件更改时更新两者)。
代码(其中很多是基于yo angular脚手架):
// in initConfig:
concurrent: {
  testAndWebServer: [
    'karma',
    'watch'
  ]
},

并且之后
grunt.registerTask('testAndServer', function (target) {
  if (target === 'dist') {
    return grunt.task.run(['build', 'open', 'connect:dist:keepalive']);
  }

  grunt.task.run([
    'clean:server',
    'concurrent:server',
    'autoprefixer',
    'compass',
    'connect:livereload',
    'open',
    'concurrent:testAndWebServer'
  ]);
});

这个方法可以正常工作,但是在终端(PowerShell)窗口没有任何输出。我希望karma任务能够显示测试结果。如何实现?

我正在运行Node.js v0.10.20,Windows 7操作系统,四核机器。


好奇,为什么你需要它们并发运行? - Henrik Andersson
@limelights 因为我不想在不同的cmd.exe终端中运行测试和服务器,我希望它们在同一个终端中运行。 - Klas Mellbourn
我刚刚进行了一次重大编辑:任务实际上被执行,并且响应文件更改,但它们不会在终端窗口中输出任何内容。这对测试任务来说很糟糕,因为我想看到那个输出。 - Klas Mellbourn
1个回答

6

我刚刚意识到我错过了logConcurrentOutput选项。

这样做可以让它工作:

  testAndWebServer: {
    tasks: ['watch', 'karma'],
    options: { logConcurrentOutput: true }
  },

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接