2014-09-19 3 views
1

나는 this error with gulp.watch으로 실행 중입니다. 본질적으로, 테스트 유닛이 오류로 실패하면 watch 명령이 멈 춥니 다. 정확히 한 번 실행 된 다음 시계가 이벤트를 다시 트리거하지 않습니다.검색된 카르마/재스민 단위 테스트에서 gulp.watch를 사용하면 오류가 발생하지 않습니다.

미리 지정된 해결 방법은 오류 발생시 종료되지 않도록 gulp-plumber을 사용하는 것입니다. 그러나 이것은 스트림에서만 작동합니다. 내가 browserify와 함께 카르마 테스트를 실행하는거야, 내 구성이 비슷합니다 (그리고 나는 배관공을 사용하려면이 나쁜 소년에 스트림 후크 방법을 결정할 수없는) :

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

gulp.task('test', function() { 
    return karma.server.start({ 
    files: [ 
     'test/**/*.spec.js' 
    ], 
    frameworks: ['browserify', 'jasmine'], 
    preprocessors: { 
     'test/**/*.spec.js': ['coverage', 'browserify'] 
    }, 
    browsers: ['PhantomJS'], 
    reporters: ['coverage', 'spec', 'failed'], 
    browserify: { 
     debug: true, 
     transform: ['browserify-istanbul'] 
    }, 
    singleRun: true 
    }); 
}); 

누구에 대한 해결 방법이 있습니까 테스트 장치를 실행하거나 권고와 함께 이것이 꿀꺽 배관공과 어떻게 작동 할 수 있을까요?

답변

7

여기 해결책은 덤프를 사진에서 제거하는 것이 었습니다. browserify가 전 처리기로 사용되기 때문에 카르마의 내부 관찰은 watchify 나 gulp.watch가 필요없이 마술처럼 작동합니다.

gulp.task('watch', function() { 
    return karma.server.start({ 
    configFile: __dirname + '/karma.conf.js' 
    }); 
}); 

gulp.task('test', function() { 
    return karma.server.start({ 
    configFile: __dirname+'/karma.conf.js', 
    singleRun: true 
    }); 
}); 

그리고 내 조정 된 설정 파일 :

module.exports = function(config) { 
    config.set({ 
    files: [ 
     'test/**/*.spec.js' 
    ], 
    frameworks: ['browserify', 'jasmine'], 
    preprocessors: { 
     'test/**/*.spec.js': ['coverage', 'browserify'] 
    }, 
    browsers: ['PhantomJS'], 
    reporters: ['coverage', 'spec', 'failed'], 
    browserify: { 
     debug: true, 
     transform: ['browserify-istanbul'] 
    } 
    }); 
};