ファイルを保存するたびにテストを実行しようとしています。ガルプウォッチは次のとおりです。
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 ファイルを変更すると、変更によってテストがトリガーされます。もう一度変更すると、テストがトリガーされますが、変更は有効になりません。たとえば、2 回目に console.log('foo') を追加すると、gulp ウォッチを再起動して再度保存するまで表示されません。したがって、ジャスミンを gulp.watch で使用する場合は、1 回の実行のみで問題ありません。
gulpプロセスでrequireがnodejsにキャッシュされているためだと思います。では、どうすればいいですか?