[java] Ant를 사용하여 프로젝트 테스트 커버리지 측정하는 방법

프로젝트의 테스트 커버리지를 측정하는 것은 소프트웨어 개발에서 매우 중요한 부분입니다. 테스트 커버리지를 측정하면 코드의 얼마나 많은 부분이 테스트 되었고 얼마나 많은 부분이 빠져있는지 알 수 있습니다. 이를 통해 테스트 커버리지를 향상시키고 코드 품질을 개선할 수 있습니다.

이번에는 Apache Ant를 사용하여 프로젝트의 테스트 커버리지를 측정하는 방법에 대해 알아보겠습니다.

1. JaCoCo 설정하기

JaCoCo는 Java Code Coverage의 약자로, Java 언어로 작성된 코드의 테스트 커버리지를 측정하기 위한 도구입니다. JaCoCo를 사용하기 위해서는 먼저 프로젝트의 build.xml 파일에 다음과 같이 의존성을 추가해야 합니다.

<dependency>
    <groupId>org.jacoco</groupId>
    <artifactId>jacocoant</artifactId>
    <version>0.8.7</version>
</dependency>

2. 테스트 커버리지 측정 태스크 작성하기

다음으로, JaCoCo를 사용하여 테스트 커버리지를 측정하기 위한 Ant 태스크를 작성해야 합니다. build.xml 파일에 다음과 같은 코드를 추가합니다.

<target name="run-tests">
    <jacoco:coverage destfile="coverage.exec">
        <java classname="com.example.MyTest" fork="true">
            <classpath>
                <pathelement location="build/classes" />
                <path refid="test.classpath" />
            </classpath>
        </java>
    </jacoco:coverage>
</target>

위 코드에서 com.example.MyTest는 테스트하고자 하는 클래스의 패키지와 이름으로 변경해주어야 합니다. 또한, build/classes는 프로젝트의 클래스 파일 경로로 변경해주어야 합니다.

3. 테스트 커버리지 결과 확인하기

Ant 태스크를 실행하면 커버리지 측정 결과가 coverage.exec 파일에 저장됩니다. 이 파일은 XML 형식으로 되어있으며, 별도의 보고서로 변환하여 확인할 수 있습니다.

JaCoCo는 JaCoCo Report 플러그인을 제공하므로, 이를 사용하여 커버리지 보고서를 생성할 수 있습니다.

<target name="generate-report">
    <jacoco:report>
        <executiondata>
            <fileset dir=".">
                <include name="**/*.exec" />
            </fileset>
        </executiondata>
        <structure name="JaCoCo Ant Example">
            <classfiles>
                <fileset dir="build/classes" />
            </classfiles>
            <sourcefiles encoding="UTF-8">
                <fileset dir="src/main/java" />
            </sourcefiles>
        </structure>
        <html destdir="coverage-report" />
    </jacoco:report>
</target>

위 코드에서 dir 속성과 name 속성을 프로젝트에 맞게 변경해주어야 합니다. classfilessourcefiles에는 프로젝트의 클래스와 소스 파일 경로를 각각 지정해주어야 합니다. destdir은 보고서가 생성될 디렉토리를 의미합니다.

4. Ant 태스크 실행하기

Ant를 사용하여 테스트 커버리지를 측정하고 보고서를 생성하기 위해서는 커맨드 라인에서 다음과 같은 명령어를 실행하면 됩니다.

ant run-tests
ant generate-report

위 명령어를 실행하면 프로젝트의 테스트가 실행되고 커버리지 측정 결과가 coverage-report 디렉토리에 HTML 형식으로 생성됩니다. 이제 해당 보고서를 열어서 테스트 커버리지를 확인할 수 있습니다.

Ant를 사용하여 프로젝트의 테스트 커버리지를 측정하는 방법에 대해 알아보았습니다. 테스트 커버리지를 측정함으로써 코드 품질을 개선하고 버그를 미리 발견하는데 도움이 되는데, 이를 통해 안정적인 소프트웨어를 개발할 수 있습니다.