[java] 멀티모듈 프로젝트에서의 테스트 커버리지 측정 방법

여러 모듈로 구성된 프로젝트에서는 각 모듈 별로 테스트를 작성하고 커버리지를 측정해야 합니다. 이러한 멀티모듈 프로젝트에서 테스트 커버리지를 측정하는 방법에 대해 알아보겠습니다.

1. 단일 모듈 테스트 커버리지 측정

첫 번째로, 단일 모듈에서 테스트 커버리지를 측정하는 방법입니다. 단일 모듈은 소스 코드와 테스트 코드가 함께 위치해 있으므로, 일반적인 방식으로 테스트 커버리지를 측정할 수 있습니다. 대표적인 자바 프레임워크인 JUnit, Mockito 등을 사용하여 테스트 코드를 작성하고, 커버리지 툴인 Jacoco 등을 사용하여 커버리지를 측정할 수 있습니다.

예를 들어, JUnit으로 작성된 단위 테스트 코드를 실행하고, Jacoco로 커버리지를 측정하는 과정은 다음과 같습니다.

@RunWith(JUnitPlatform.class)
public class MyUnitTest {
    
    @Test
    public void testSomething() {
        // 테스트 코드 작성
    }
    
    // 추가 테스트 메소드 작성
    
}

위와 같이 단위 테스트 코드를 작성한 후, 프로젝트 루트 디렉터리에서 다음 명령어를 실행하여 테스트를 실행하고 커버리지를 측정할 수 있습니다.

./gradlew test jacocoTestReport

커버리지 결과는 build/reports/jacoco/test/html 경로에 생성됩니다.

2. 멀티모듈 프로젝트에서의 테스트 커버리지 측정

두 번째로, 멀티모듈 프로젝트에서의 테스트 커버리지를 측정하는 방법입니다. 멀티모듈 프로젝트는 여러 개의 모듈로 구성되어 있으며, 각 모듈은 독립적으로 컴파일 및 테스트되므로 개별적인 커버리지 결과를 얻을 수 있습니다.

각 모듈에서 위에서 설명한 방법과 동일하게 단일 모듈에서 테스트 커버리지를 측정하는 과정을 진행하면 됩니다. 각 모듈의 테스트 결과와 커버리지 보고서를 확인하여 각 모듈별로 테스트 커버리지를 측정할 수 있습니다.

또는 멀티모듈 프로젝트 전체의 통합 테스트 코드를 작성하고 커버리지를 측정하는 방법도 있습니다. 이 경우, 각 모듈에 대한 테스트 코드를 작성한 후, 프로젝트 전체에 대한 통합 테스트를 수행하고 커버리지를 측정하는 방법입니다.

이렇게 멀티모듈 프로젝트에서의 테스트 커버리지를 측정하는 방법을 활용하면, 각 모듈의 품질을 측정하고 개선할 수 있습니다.

결론

멀티모듈 프로젝트에서의 테스트 커버리지 측정은 각 모듈을 개별적으로 테스트하거나 전체 프로젝트를 대상으로 통합 테스트를 수행하는 방법으로 진행할 수 있습니다. 이를 통해 소프트웨어의 품질을 유지하고 개선할 수 있습니다.

참고 자료: