[java] TestNG에서 테스트 실행 순서 지정하기

TestNG를 사용하여 자동화 테스트를 수행할 때 특정한 테스트 실행 순서를 지정해야 할 때가 있습니다. 이번 블로그에서는 TestNG에서 테스트 메소드의 실행 순서를 지정하는 방법을 알아보겠습니다.

TestNG에서 테스트 메소드의 실행 순서 지정하기

TestNG에서는 테스트 메소드의 실행 순서를 @Test 어노테이션의 priority 속성을 사용하여 지정할 수 있습니다. priority 속성은 테스트 메소드에 우선순위를 부여하며, 낮은 숫자일수록 먼저 실행됩니다.

다음은 priority 속성을 사용하여 테스트 메소드의 실행 순서를 지정하는 예제 코드입니다.

public class TestNGExample {
    @Test(priority = 1)
    public void firstTest() {
        // 첫 번째로 실행될 테스트 메소드
    }

    @Test(priority = 2)
    public void secondTest() {
        // 두 번째로 실행될 테스트 메소드
    }

    @Test(priority = 3)
    public void thirdTest() {
        // 세 번째로 실행될 테스트 메소드
    }
}

위의 예제에서 firstTest 메소드가 priority가 1로 가장 낮기 때문에 가장 먼저 실행되며, secondTest 메소드가 그 다음에 실행되고 thirdTest 메소드가 가장 마지막에 실행됩니다.

TestNG 그룹화를 사용한 테스트 실행 순서 지정하기

또 다른 방법으로는 TestNG의 그룹화를 활용하여 테스트 실행 순서를 지정할 수 있습니다. @Test 어노테이션에 groups 속성을 사용하여 그룹을 지정하고, @Test 어노테이션의 dependsOnGroups 속성을 사용하여 특정 그룹의 테스트가 성공적으로 실행될 때 해당 그룹의 테스트를 실행할 수 있습니다.

아래는 그룹화를 사용하여 테스트 실행 순서를 지정하는 예제 코드입니다.

public class TestNGExample {
    @Test(groups = "group1")
    public void firstGroupTest() {
        // 그룹 1의 테스트 메소드
    }

    @Test(groups = "group2", dependsOnGroups = "group1")
    public void secondGroupTest() {
        // 그룹 2의 테스트 메소드
    }
}

위의 예제에서 secondGroupTest 메소드는 group2에 속해 있으며, dependsOnGroups 속성을 사용하여 group1이 성공적으로 실행될 때에만 실행됩니다.

마무리

TestNG를 사용하여 테스트 메소드의 실행 순서를 지정하는 방법에 대해 알아보았습니다. priority 속성과 그룹화를 활용하여 테스트 메소드의 실행 순서를 유연하게 지정할 수 있으며, 테스트를 보다 효율적으로 관리할 수 있습니다.

더 많은 정보는 TestNG 공식 문서에서 확인할 수 있습니다.