TestNG는 자바 기반의 테스트 프레임워크로, 테스트를 좀 더 구조화하고 관리하기 쉽게 해줍니다. 이번 글에서는 TestNG에서 테스트를 실행하는 순서와 테스트를 그룹화하는 방법에 대해서 알아보겠습니다.
테스트 실행 순서
TestNG에서는 테스트 메서드의 실행 순서를 제어할 수 있습니다. 기본적으로 TestNG는 메서드의 이름 순서대로 실행합니다. 그러나 특정한 실행 순서를 원하는 경우, @Test
애너테이션의 priority
속성을 사용하여 우선순위를 지정할 수 있습니다.
@Test(priority = 1)
public void firstTest() {
// 첫 번째 테스트 메서드의 로직
}
@Test(priority = 2)
public void secondTest() {
// 두 번째 테스트 메서드의 로직
}
위의 예시에서는 @Test
애너테이션의 priority
속성을 이용해 테스트 메서드의 실행 순서를 조정하고 있습니다. firstTest
메서드가 secondTest
메서드보다 먼저 실행되며, 이 순서는 TestNG에서 보장됩니다.
테스트 그룹화
TestNG는 테스트를 그룹화하여 유연하게 실행할 수 있도록 지원합니다. @Test
애너테이션에 groups
속성을 사용하여 테스트 메서드를 원하는 그룹에 속하도록 할 수 있습니다.
@Test(groups = "smoke")
public void smokeTest() {
// 스모크 테스트 로직
}
@Test(groups = "regression")
public void regressionTest() {
// 회귀 테스트 로직
}
위의 예시에서는 smokeTest
메서드와 regressionTest
메서드를 각각 smoke
그룹과 regression
그룹에 속하도록 설정하고 있습니다. 이렇게 설정한 후, 그룹별로 테스트를 실행하고 싶다면 TestNG의 XML 설정 파일에서 그룹을 지정할 수 있습니다.
<test name="모든 테스트">
<groups>
<run>
<include name="smoke"/>
</run>
</groups>
<classes>
<class name="com.example.TestClass"/>
</classes>
</test>
위의 예시에서는 smoke
그룹에 속한 테스트만을 실행하도록 설정하고 있습니다. include
태그 안에 실행하고자 하는 그룹을 명시하여 원하는 그룹의 테스트만 실행할 수 있습니다.
결론
TestNG는 테스트를 실행하는 순서를 제어하고, 테스트를 그룹화하여 필요한 테스트만을 실행할 수 있도록 도와줍니다. priority
와 groups
속성을 적절히 사용하여 효율적인 테스트 실행을 구축할 수 있습니다.