[javascript] Jasmine을 사용하여 자바스크립트 앱의 커버리지 리포트 생성 방법

Jasmine은 자바스크립트 앱의 테스트를 작성하고 실행할 수 있는 테스트 프레임워크입니다. Jasmine을 사용하면 코드의 커버리지 정보를 추적하고 리포트로 생성할 수 있습니다. 이번 블로그 포스트에서는 Jasmine을 사용하여 자바스크립트 앱의 커버리지 리포트를 생성하는 방법에 대해 알아보겠습니다.

1. Istanbul 설치

커버리지 리포트를 생성하기 위해서는 먼저 Istanbul을 설치해야 합니다. Istanbul은 코드의 커버리지 정보를 추적할 수 있는 도구입니다. 다음 명령어를 사용하여 Istanbul을 설치합니다.

npm install --save-dev istanbul

2. 테스트 코드 작성

커버리지 리포트를 생성하기 위해서는 먼저 테스트 코드를 작성해야 합니다. Jasmine을 사용하여 자바스크립트 앱의 테스트 코드를 작성합니다. Jasmine은 자바스크립트 테스트 코드를 작성하기 위한 DSL(Domain Specific Language)을 제공합니다. 다음은 Jasmine을 사용하여 간단한 테스트 코드를 작성하는 예입니다.

describe('Calculator', function() {
  var calc;

  beforeEach(function() {
    calc = new Calculator();
  });

  it('should add two numbers', function() {
    var result = calc.add(2, 3);
    expect(result).toBe(5);
  });

  it('should subtract two numbers', function() {
    var result = calc.subtract(5, 3);
    expect(result).toBe(2);
  });
});

3. 커버리지 리포트 생성

테스트 코드 작성이 완료되면 Istanbul을 사용하여 커버리지 리포트를 생성할 수 있습니다. Istanbul을 실행하는 명령어는 다음과 같습니다.

istanbul cover jasmine

위 명령어는 Jasmine을 실행하고 커버리지 정보를 수집합니다. 수집된 정보를 바탕으로 커버리지 리포트를 생성합니다. 리포트는 coverage/lcov-report/index.html 경로에 생성됩니다. 해당 파일을 웹 브라우저로 열면 커버리지 리포트를 확인할 수 있습니다.

4. 리포트 해석

커버리지 리포트를 해석하면 코드의 커버리지 정보를 확인할 수 있습니다. 리포트에서는 각 파일별로 얼마나 많은 코드가 테스트되었는지를 보여줍니다. 테스트되지 않은 코드는 붉은색으로 표시되고, 테스트된 코드는 초록색으로 표시됩니다. 이를 통해 테스트되지 않은 코드를 식별하고 커버리지를 높이기 위한 개선 작업을 진행할 수 있습니다.

참고 자료