2015-06-20 28 views
0

我正在从grunt切换到gulp。这是工作发现咕噜(提及以防万一它有帮助)。gulp手表只能运行两次

当我的测试任务(摩卡)下面的gulp文件在文件更改时成功运行,但它只能运行两次。如果我更换另一个文件,该任务将运行,但对相同文件的连续更改不会触发运行。换句话说:

  • 触摸文件A,任务运行
  • 触摸文件一遍,任务运行
  • 再次触摸文件A,任务不运行
  • 触摸文件B,任务运行
  • 触摸文件B再次,任务不运行

测试通过,我看到的唯一输出是一饮而尽启动/停止(即我没有看到这样会破坏手表的任何错误)

OSX 10.10.3 /一饮而尽3.9.0

我gulpfile:

'use strict'; 

var gulp = require('gulp'); 
var mocha = require('gulp-mocha'); 

gulp.task('test', function() { 
    gulp.src('test/unit/**/*.js') 
     .pipe(mocha()); 
}); 

gulp.task('watch', function() { 
    gulp.watch('lib/**/*.js', ['test']); 
}); 

回答

0

想通了。我在一些测试中使用了sinon.useFakeTimer。从未恢复原始时钟行为。出于某种原因,咕噜声不受此影响。我恢复了时钟,现在很开心

1

这很古怪,我不知道为什么,但同样的事情发生在我身上,它开始我曾经工作也开始观看测试文件。也许它会适用于你的情况。试一试。

gulp.task('watch', ['test'], function() { 
    gulp.watch(['lib/**/*.js', 'test/unit/**/*.js'], ['test']); 
});