[javascript] Gulp를 사용하여 자바스크립트 파일의 테스트 커버리지(Test Coverage)를 측정하는 방법

테스트 커버리지는 소프트웨어의 테스트 스위트가 얼마나 많은 코드를 실행하는지를 측정하는 지표입니다. 이는 소프트웨어의 품질을 평가하는 데 중요한 요소 중 하나입니다. 이번에는 Gulp를 사용하여 자바스크립트 파일의 테스트 커버리지를 측정하는 방법에 대해 알아보도록 하겠습니다.

1. Gulp 설치 및 설정

먼저, Gulp를 설치해야 합니다. 다음의 명령어를 사용하여 Gulp를 전역으로 설치합니다.

npm install -g gulp

프로젝트의 루트 디렉토리에서 다음의 명령어를 사용하여 Gulp를 설치합니다.

npm install --save-dev gulp

프로젝트의 루트 디렉토리에 gulpfile.js라는 이름의 파일을 생성한 후, 다음과 같이 Gulp 태스크를 설정합니다.

const gulp = require('gulp');
const istanbul = require('gulp-istanbul');
const mocha = require('gulp-mocha');

gulp.task('pre-test', () =>
    gulp.src(['./src/**/*.js'])
        .pipe(istanbul())
        .pipe(istanbul.hookRequire())
);

gulp.task('test', ['pre-test'], () =>
    gulp.src(['./test/**/*.js'])
        .pipe(mocha())
        .pipe(istanbul.writeReports())
);

위의 Gulp 태스크는 pre-testtest로 구성되어 있습니다. pre-test 태스크는 테스트 전에 코드 커버리지를 측정하기 위해 istanbul 모듈을 사용하고, test 태스크는 테스트를 실행하고 커버리지 리포트를 생성합니다.

2. 테스트 스크립트 작성

테스트를 실행하기 위해 테스트 스크립트를 작성해야 합니다. test 디렉토리에 자바스크립트 테스트 파일을 작성합니다. 예를 들어, test/example.js 파일을 다음과 같이 작성할 수 있습니다.

const assert = require('assert');
const example = require('../src/example');

describe('Example', () => {
    it('should return true', () => {
        const result = example();
        assert.equal(result, true);
    });
});

위의 예시에서는 example 함수가 true를 반환하는지를 테스트하는 스크립트입니다.

3. 테스트 실행 및 커버리지 측정

테스트를 실행하고 커버리지를 측정하기 위해 다음의 명령어를 사용합니다.

gulp test

위의 명령어를 실행하면 Gulp는 테스트를 실행하고 커버리지 리포트를 생성합니다. 리포트는 프로젝트 내에 coverage 디렉토리에 생성됩니다.

4. 커버리지 리포트 확인

커버리지 리포트는 HTML 형식으로 제공되며, 브라우저에서 확인할 수 있습니다. coverage 디렉토리 내의 index.html 파일을 브라우저로 열어 커버리지 리포트를 확인할 수 있습니다.

참고 자료