개발일지

GULP + JASMINE

• javascript

GULP로 Jasmine테스트 러너 동작시키기

지난번의 GULP + LESS 조합에 이어 GULP + JASMINE 조합을 테스트 해 보았습니다.
실제로 얼마나 실용성이 있을지는 모르겠습니다만, 이전보다 확실히 편해지네요.
아래의 gulpfile.js는 테스트 스펙이 변경되면 테스트 러너 웹 페이지를 자동으로 새로고침합니다.

var gulp = require('gulp');
var server = require('gulp-server-livereload');

gulp.task('webserver', function() {
	gulp.src('./')
		.pipe(server({
			livereload: true,
			directoryListing: true,
			open: true
		}));
});

gulp.task('watch', function () {
	gulp.watch('./*.js');
});

gulp.task('default', ['webserver','watch']);

그런데 npm을 뒤져보니 gulp-jasmine 이라는 플러그인이 보입니다.
실행시켜 보니.. 웹 페이지에서 실행시킨 테스트 스펙보다 최소 5배가량 속도가 빠릅니다?!
아래의 gulpfile.js는 테스트 스펙이 변경되면 테스트 러너 웹 페이지를 자동으로 새로고침하고,
터미널에서 테스트 스펙을 자동으로 실행시킵니다.

var gulp = require('gulp');
var server = require('gulp-server-livereload');
var jasmine = require('gulp-jasmine');

gulp.task('webserver', function() {
	gulp.src('./')
		.pipe(server({
			livereload: true,
			directoryListing: true,
			open: true
		}));
});

gulp.task('jasmine_unitTesting', function () {
	return gulp.src('./regexSpec.js')
		.pipe(jasmine({
			verbose:true
		}));
});

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

gulp.task('default', ['webserver','watch']);

실제로 스펙을 웹 페이지와 콘솔 양쪽에서 구동시켜보니 차이가 확연합니다.

결론: 실제 개발환경에서 jasmine으로 단위 테스트를 작성해야 한다면 콘솔로 출력하는 것을 적극적으로 고려해 봐야겠습니다.
단위테스트 환경이 쾌적해져야 열심히 단위테스트를 작성하게 되겠지요.

예제 소스

comments powered by Disqus