TestNG

정의
TestNG는 Java 프로그래밍 언어를 위한 단위 테스트 및 통합 테스트 프레임워크이며, JUnit과 NUnit에 영감을 받아 설계되었다. 테스트 메서드의 선언, 실행 순서 제어, 병렬 테스트, 데이터 제공 등 고급 기능을 제공한다.

개요
TestNG는 2004년 Cedric Beust에 의해 처음 공개되었으며, 오픈소스 라이선스(Apache License 2.0) 하에 배포된다. 주로 Maven, Gradle 등 빌드 도구와 연동되어 사용되며, Selenium 등 UI 자동화 프레임워크와 함께 활용되는 경우가 많다. 테스트 클래스와 메서드에 @Test, @BeforeMethod, @AfterClass와 같은 어노테이션을 부여함으로써 테스트 흐름을 선언적으로 정의한다.

어원/유래
TestNG는 “Test Next Generation”의 약자로, 기존 테스트 프레임워크(JUnit) 대비 향상된 기능을 제공한다는 의미를 담고 있다. 정확한 명명 배경은 개발자 Cedric Beust의 설명에 기반한다.

특징

구분 주요 내용
어노테이션 기반 @Test, @BeforeSuite, @AfterGroups 등 다양한 어노테이션 제공
테스트 구성 테스트 그룹, 의존성, 우선순위 지정 가능
병렬 실행 메서드, 클래스, 테스트 스위트 단위의 병렬 실행 지원
데이터 제공 @DataProvider를 통한 매개변수화 테스트 지원
리포팅 HTML, XML 형태의 테스트 결과 리포트 자동 생성
통합 Maven, Gradle, Ant 등 빌드 툴 및 IDE(Eclipse, IntelliJ IDEA)와 원활한 연동
확장성 리스너, 어노테이션 트랜스포머 등을 이용한 커스텀 확장 가능

관련 항목

  • JUnit
  • NUnit
  • Maven
  • Gradle
  • Selenium WebDriver
  • Java Platform, Standard Edition (Java SE)

※ 본 내용은 공개된 공식 문서 및 신뢰할 수 있는 기술 자료를 토대로 작성되었으며, 최신 버전에서의 세부 사항은 공식 웹사이트(https://testng.org)에서 확인할 수 있다.

둘러보기

더 찾아볼 만한 주제