[java] TestNG와 Jenkins와의 통합 파이프라인 예제

TestNG는 Java 기반의 테스트 프레임워크로, 테스트 작성, 실행 및 리포팅을 지원합니다. Jenkins는 지속적인 통합 및 배포 도구로, 응용 프로그램 개발 수명주기를 자동화합니다. 이 두 도구를 통합하여 자동화된 테스트 파이프라인을 구축하는 방법에 대해 알아보겠습니다.

사전 요구사항

단계 1: Jenkins 작업 만들기

  1. Jenkins 대시보드에 접속하고 “새로운 작업 만들기”를 클릭합니다.
  2. 프로젝트 이름을 입력하고 “Freestyle 프로젝트”를 선택합니다.
  3. “Build” 섹션에서 “Execute shell”을 선택합니다.
  4. 아래 스크립트를 입력하고 “저장”합니다.
cd /path/to/project
mvn clean test
cp -R reports /path/to/jenkins/workspace/$JOB_NAME

단계 2: TestNG 설정

  1. 테스트 프로젝트 내에 “testng.xml” 파일을 생성합니다.
  2. 아래와 같이 테스트 스위트를 정의합니다.
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestNG Example Suite">
    <test name="TestNG Example Test">
        <classes>
            <class name="com.example.TestClass1"/>
            <class name="com.example.TestClass2"/>
        </classes>
    </test>
</suite>

단계 3: Maven 설정

  1. Maven 프로젝트의 “pom.xml” 파일에 아래 내용을 추가합니다.
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.0.0-M5</version>
            <configuration>
                <suiteXmlFiles>
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
    </plugins>
</build>

단계 4: Jenkins 작업 설정

  1. Jenkins 작업 설정 페이지로 이동합니다.
  2. “소스 코드 관리” 섹션에서 Git 또는 SVN과 같은 리포지토리 정보를 입력합니다.
  3. “Build” 섹션에서 “Invoke top-level Maven targets”를 선택합니다.
  4. “Goals” 입력란에 “clean test”를 입력합니다.
  5. “Post-build Actions” 섹션에서 “Archive the artifacts”를 선택하고 “reports” 디렉토리를 입력합니다.

단계 5: Jenkins 작업 실행

  1. Jenkins 대시보드에서 해당 작업을 선택한 후 “빌드 지금 실행”을 클릭합니다.
  2. 테스트가 실행되고 Jenkins에서 생성된 리포트가 해당 작업의 작업 공간에 저장됩니다.

이제 TestNG와 Jenkins를 통합하여 자동화된 테스트 파이프라인을 구축할 수 있습니다. 테스트 관리 및 결과 추적을 자동화함으로써 개발 프로세스를 개선할 수 있습니다.

참고 자료