[java] Maven을 사용하여 모듈별로 테스트하기

Maven은 Java 프로젝트의 빌드, 종속성 관리, 테스트 및 배포를 자동화하기 위한 강력한 도구입니다. 이번 글에서는 Maven을 사용하여 모듈별로 테스트하는 방법에 대해 알아보겠습니다.

1. Maven 프로젝트 구성하기

먼저 Maven을 사용하여 Java 프로젝트를 생성합니다. 프로젝트를 생성하는 방법은 여러 가지가 있지만, 가장 간단한 방법은 Maven archetype을 사용하는 것입니다. 다음 명령어를 사용하여 Maven 프로젝트를 생성합니다.

mvn archetype:generate -DgroupId=com.example -DartifactId=my-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

위 명령어를 실행하면 com.example.my-project라는 groupId와 artifactId를 가진 Maven 프로젝트가 생성됩니다.

2. 모듈 구성하기

프로젝트의 각 모듈은 개별적으로 테스트할 수 있도록 구성되어야 합니다. Maven은 모듈별로 테스트할 수 있는 기능을 제공합니다. 먼저 프로젝트의 모듈을 만들기 위해 my-project 폴더로 이동합니다.

cd my-project

다음으로 Maven 모듈을 생성합니다. 다음 명령어를 사용하여 모듈을 생성합니다.

mvn archetype:generate -DgroupId=com.example -DartifactId=my-module -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

위 명령어를 실행하면 my-module이라는 이름의 Maven 모듈이 생성됩니다.

3. 모듈별로 테스트 작성하기

각 모듈은 자체적으로 테스트할 수 있어야 합니다. Maven은 JUnit이나 TestNG와 같은 테스트 프레임워크를 지원합니다. 모듈 내부에서 테스트를 작성하기 위해 src/test/java 폴더에 테스트 클래스를 생성합니다.

package com.example.my.module;

import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class MyModuleTest {
    
    @Test
    public void testAddition() {
        int result = MyModule.add(2, 3);
        assertEquals(5, result);
    }
}

위 코드는 MyModule 클래스의 add 메서드를 테스트하는 간단한 JUnit 테스트입니다.

4. 테스트 실행하기

테스트를 실행하려면 Maven 명령어를 사용합니다. my-module 폴더로 이동하여 다음 명령어를 실행합니다.

mvn test

위 명령어를 실행하면 my-module 모듈의 테스트가 실행되고 결과가 표시됩니다.

5. 결과 확인하기

테스트가 성공적으로 실행되면 다음과 같은 메시지가 나타납니다.

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.example.my.module.MyModuleTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.081 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

만약 테스트가 실패한 경우, 해당 테스트에서 AssertionError가 발생한 것입니다. 에러 메시지를 통해 어떤 부분에서 문제가 발생했는지 확인할 수 있습니다.

결론

Maven을 사용하여 모듈별로 테스트를 작성하고 실행하는 방법에 대해 알아보았습니다. Maven은 테스트를 자동화하여 개발자가 손쉽게 품질을 보장할 수 있도록 도와줍니다. 모듈별로 테스트를 작성하고 실행함으로써 안정적인 소프트웨어를 개발할 수 있습니다.

참고 자료