[java] TestNG를 활용한 멀티 모듈 프로젝트 테스트

TestNG는 자바 기반의 테스트 프레임워크로, 멀티 모듈 프로젝트에서의 테스트를 효과적으로 수행할 수 있습니다. 이번 글에서는 TestNG를 사용하여 멀티 모듈 프로젝트를 테스트하는 방법에 대해 알아보겠습니다.

1. TestNG 설정

먼저, 프로젝트 내에 TestNG를 추가하고 설정해야 합니다. 프로젝트의 pom.xml 파일에 다음과 같은 의존성을 추가합니다:

<dependencies>
  <!-- TestNG -->
  <dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.3.0</version>
    <scope>test</scope>
  </dependency>
</dependencies>

또한, TestNG의 실행을 위해 testng.xml 파일을 프로젝트 내에 생성해야 합니다. testng.xml 파일은 테스트 수행에 필요한 설정 정보를 포함하고 있습니다.

2. 멀티 모듈 프로젝트 구조

멀티 모듈 프로젝트의 구조는 다음과 같이 설정될 수 있습니다:

- parent-module
  - module1
  - module2

parent-module은 부모 모듈로, module1module2는 자식 모듈입니다. 각 모듈은 독립적으로 테스트될 수 있는 기능을 제공합니다.

3. 테스트 클래스 작성

각 모듈에 대해 테스트를 수행하기 위해 테스트 클래스를 작성해야 합니다. 이때, parent-module에서는 모든 자식 모듈의 테스트를 수행하는 TestNG 그룹을 정의해야 합니다.

package com.example.tests;

import org.testng.annotations.Test;

public class Module1Test {
    @Test(groups = "module1")
    public void testModule1() {
        // 테스트 수행 로직
    }
}

package com.example.tests;

import org.testng.annotations.Test;

public class Module2Test {
    @Test(groups = "module2")
    public void testModule2() {
        // 테스트 수행 로직
    }
}

4. 테스트 실행

parent-module에서는 testng.xml 파일을 이용하여 자식 모듈의 테스트를 제어할 수 있습니다. testng.xml 파일에는 다음과 같이 테스트 그룹을 정의할 수 있습니다:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Multi Module Test Suite" verbose="1">
  <test name="Module1 Tests">
    <groups>
      <run>
        <include name="module1"/>
      </run>
    </groups>
    <packages>
      <package name="com.example.tests"/>
    </packages>
  </test>
  <test name="Module2 Tests">
    <groups>
      <run>
        <include name="module2"/>
      </run>
    </groups>
    <packages>
      <package name="com.example.tests"/>
    </packages>
  </test>
</suite>

testng.xml 파일에서는 각 테스트 그룹에 해당하는 모듈의 테스트를 수행할 수 있으며, 필요에 따라 다른 설정들을 추가할 수 있습니다.

5. 테스트 실행 결과 분석

테스트를 실행하고 나면, TestNG는 테스트 결과를 제공합니다. 이를 통해 각 모듈의 테스트가 성공적으로 수행되었는지 확인할 수 있습니다. 또한, 테스트 실행 결과를 보고서로 생성하여 관리할 수도 있습니다.

6. 결론

TestNG를 활용하여 멀티 모듈 프로젝트의 테스트를 효과적으로 관리할 수 있습니다. TestNG는 유연한 설정과 강력한 테스트 기능을 제공하여 테스트 작업을 간편하게 만들어줍니다.

참고 자료