每次我保存一些文件时,我都试图让我的测试运行。这是吞咽手表:
gulp.task('jasmine', function() {
gulp.src('spec/nodejs/*Spec.js')
.pipe(jasmine({verbose:true, includeStackTrace: true}));
});
gulp.task('watch', function () {
gulp.watch(['app/*.js', 'app/!(embed)**/*.js','spec/nodejs/*.js'], ['jasmine']);
});
例如,为了测试 app/maps.js,我正在创建一个 spec/nodejs/mapsSpec.js 文件,如下所示:
'use strict';
var maps = require('../../app/maps');
describe('/maps related routes', function(){
it('should ...', function(){...}
...
如果我更改规范文件,一切正常,如果我修改 app/maps.js 文件,更改会触发测试。如果我再次对其进行修改,则会触发测试,但修改不会生效。例如,如果我第二次添加一个 console.log('foo'),直到我重新启动 gulp watch 并再次保存它时才会看到它。因此,与 gulp.watch 一起使用时,只运行一次 jasmine 就可以了。
我想这是因为在 gulp 过程中 nodejs 缓存了 require 。那我该怎么办?