[java] TestNG와 Jenkins와의 통합 파이프라인 예제
TestNG는 Java 기반의 테스트 프레임워크로, 테스트 작성, 실행 및 리포팅을 지원합니다. Jenkins는 지속적인 통합 및 배포 도구로, 응용 프로그램 개발 수명주기를 자동화합니다. 이 두 도구를 통합하여 자동화된 테스트 파이프라인을 구축하는 방법에 대해 알아보겠습니다.
사전 요구사항
- Jenkins가 설치되어 있어야 합니다. (https://jenkins.io/)
- Java 개발 환경이 구축되어 있어야 합니다.
- Maven 빌드 도구가 설치되어 있어야 합니다.
단계 1: Jenkins 작업 만들기
- Jenkins 대시보드에 접속하고 “새로운 작업 만들기”를 클릭합니다.
- 프로젝트 이름을 입력하고 “Freestyle 프로젝트”를 선택합니다.
- “Build” 섹션에서 “Execute shell”을 선택합니다.
- 아래 스크립트를 입력하고 “저장”합니다.
cd /path/to/project
mvn clean test
cp -R reports /path/to/jenkins/workspace/$JOB_NAME
단계 2: TestNG 설정
- 테스트 프로젝트 내에 “testng.xml” 파일을 생성합니다.
- 아래와 같이 테스트 스위트를 정의합니다.
<!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 설정
- 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 작업 설정
- Jenkins 작업 설정 페이지로 이동합니다.
- “소스 코드 관리” 섹션에서 Git 또는 SVN과 같은 리포지토리 정보를 입력합니다.
- “Build” 섹션에서 “Invoke top-level Maven targets”를 선택합니다.
- “Goals” 입력란에 “clean test”를 입력합니다.
- “Post-build Actions” 섹션에서 “Archive the artifacts”를 선택하고 “reports” 디렉토리를 입력합니다.
단계 5: Jenkins 작업 실행
- Jenkins 대시보드에서 해당 작업을 선택한 후 “빌드 지금 실행”을 클릭합니다.
- 테스트가 실행되고 Jenkins에서 생성된 리포트가 해당 작업의 작업 공간에 저장됩니다.
이제 TestNG와 Jenkins를 통합하여 자동화된 테스트 파이프라인을 구축할 수 있습니다. 테스트 관리 및 결과 추적을 자동화함으로써 개발 프로세스를 개선할 수 있습니다.
참고 자료