TestNG는 Java용 테스트 프레임워크로, 다양한 테스트 시나리오를 실행하고 관리하는 데 도움이 됩니다. Jenkins는 지속적인 통합 도구로, 코드 변경 사항이 발생할 때마다 자동으로 빌드 및 테스트를 수행할 수 있습니다. 이때 TestNG와 Jenkins를 함께 사용하면 테스트 자동화 및 통합 테스트 프로세스를 자동화할 수 있습니다.
Jenkins 설정
먼저 Jenkins를 설치하고 구성해야 합니다. Jenkins를 설치하는 방법은 다양하지만, 이 글에서는 Jenkins의 공식 웹사이트에서 제공하는 War 파일을 이용하는 방법을 다루도록 하겠습니다. War 파일을 다운로드한 후, 아래와 같이 명령어를 실행하여 Jenkins를 시작할 수 있습니다.
java -jar jenkins.war
Jenkins 파이프라인 설정
Jenkins 관리 대시보드에 접속하여 파이프라인을 설정해야 합니다. 파이프라인은 Jenkins로 실행할 작업을 정의하는 스크립트 형태로 작성됩니다. 아래는 Jenkins 파이프라인 설정을 위한 예시입니다.
pipeline {
agent any
stages {
stage('Checkout') {
steps {
// 소스 코드 체크아웃
git 'https://github.com/your-repo.git'
}
}
stage('Build') {
steps {
// Maven을 이용한 빌드
sh 'mvn clean package'
}
}
stage('Test') {
steps {
// TestNG 테스트 실행
sh 'mvn test'
}
}
stage('Publish') {
steps {
// 테스트 리포트를 Jenkins에 퍼블리시
publishHTML(target: [
allowMissing: false,
alwaysLinkToLastBuild: true,
keepAll: true,
reportDir: 'target/surefire-reports',
reportFiles: 'index.html',
reportName: 'Test Report'
])
}
}
}
}
위의 예시는 간단한 Jenkins 파이프라인 스크립트입니다. 소스 코드 체크아웃, 빌드, 테스트, 그리고 테스트 리포트 퍼블리싱 단계로 구성되어 있습니다.
TestNG 설정
TestNG를 사용하여 테스트를 작성해야 합니다. TestNG는 테스트 클래스 및 테스트 메서드를 정의하고 실행하는 데 사용됩니다. 아래는 TestNG를 사용한 예시입니다.
import org.testng.annotations.Test;
public class MyTest {
@Test
public void testMethod() {
// 테스트 로직 작성
}
}
위의 예시는 간단한 TestNG 테스트 메서드입니다. @Test
어노테이션으로 테스트 메서드를 정의하고, 원하는 테스트 로직을 작성하면 됩니다.
Jenkins와 TestNG 연동
Jenkins 파이프라인에서 TestNG 테스트를 실행하기 위해 Maven을 사용할 수 있습니다. Jenkins는 Maven을 통해 프로젝트를 빌드하고 테스트를 실행할 수 있습니다. 위의 파이프라인 설정 예시에서 mvn test
명령어를 이용하여 TestNG 테스트를 실행하고 있습니다.
또한 Jenkins는 TestNG 테스트 리포트를 퍼블리시 할 수 있습니다. 위의 파이프라인 설정 예시에서는 publishHTML
스텝을 통해 테스트 리포트를 Jenkins에 퍼블리시 하고 있습니다.
결론
TestNG와 Jenkins를 파이프라인으로 통합하여 테스트 자동화 및 통합 테스트 프로세스를 자동화할 수 있습니다. Jenkins 파이프라인을 설정하고 TestNG 테스트를 작성한 후, Jenkins와 TestNG를 연동하여 테스트를 실행하고 리포트를 분석할 수 있습니다.