여러 모듈로 구성된 프로젝트에서는 각 모듈 별로 테스트를 작성하고 커버리지를 측정해야 합니다. 이러한 멀티모듈 프로젝트에서 테스트 커버리지를 측정하는 방법에 대해 알아보겠습니다.
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. 멀티모듈 프로젝트에서의 테스트 커버리지 측정
두 번째로, 멀티모듈 프로젝트에서의 테스트 커버리지를 측정하는 방법입니다. 멀티모듈 프로젝트는 여러 개의 모듈로 구성되어 있으며, 각 모듈은 독립적으로 컴파일 및 테스트되므로 개별적인 커버리지 결과를 얻을 수 있습니다.
각 모듈에서 위에서 설명한 방법과 동일하게 단일 모듈에서 테스트 커버리지를 측정하는 과정을 진행하면 됩니다. 각 모듈의 테스트 결과와 커버리지 보고서를 확인하여 각 모듈별로 테스트 커버리지를 측정할 수 있습니다.
또는 멀티모듈 프로젝트 전체의 통합 테스트 코드를 작성하고 커버리지를 측정하는 방법도 있습니다. 이 경우, 각 모듈에 대한 테스트 코드를 작성한 후, 프로젝트 전체에 대한 통합 테스트를 수행하고 커버리지를 측정하는 방법입니다.
이렇게 멀티모듈 프로젝트에서의 테스트 커버리지를 측정하는 방법을 활용하면, 각 모듈의 품질을 측정하고 개선할 수 있습니다.
결론
멀티모듈 프로젝트에서의 테스트 커버리지 측정은 각 모듈을 개별적으로 테스트하거나 전체 프로젝트를 대상으로 통합 테스트를 수행하는 방법으로 진행할 수 있습니다. 이를 통해 소프트웨어의 품질을 유지하고 개선할 수 있습니다.
참고 자료:
- JUnit: https://junit.org/junit5/
- Mockito: https://site.mockito.org/
- Jacoco: https://www.eclemma.org/jacoco/