수색…


통사론

  • @Test (groups = { "group1", "group.regression"}, dependsOnGroups = { "group2", "group3"})

TestNG 그룹 구성 및 기본 예제

그룹은 testng.xml Suite 및 / 또는 Test 요소에서 구성 할 수 있습니다. tesng.xml 포함 된 것으로 표시된 모든 그룹은 실행을 위해 고려되며, 제외 된 그룹은 무시됩니다. @Test 메서드에 여러 그룹이 있고 testng.xml 에서 단일 그룹이 제외 된 경우 해당 그룹에서 @Test 메서드가 실행되지 않습니다.

다음은 실행중인 그룹에 대한 Test 레벨의 일반적인 testng.xml 구성입니다.

<suite name="Suite World">
<test name="Test Name">
  <groups>
    <run>
      <include name="functest" />
      <exclude name="regtest" />
    </run>
  </groups>
  <classes>
    <class name="example.group.GroupTest"/>
  </classes>
</test>
</suite>

그리고 이것이 테스트 클래스의 모습입니다 :

package example.group;

import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class GroupTest {
    
    @BeforeClass
    public void deSetup(){
        //do configuration stuff here
    }
    
    @Test(groups = { "functest", "regtest" })
    public void testMethod1() {
    }

    @Test(groups = {"functest", "regtest"} )
    public void testMethod2() {
    }

    @Test(groups = { "functest" })
    public void testMethod3() {
    }
    
    @AfterClass
    public void cleanUp(){
        //do resource release and cleanup stuff here
    }
}

GroupTest TestNG 클래스를 실행하면 testMethod3() 만 실행됩니다.

설명:

  • <include name="functest" /> functest 그룹의 모든 테스트 메소드가 다른 그룹에 의해 제외되지 않으면 실행에 적합합니다.
  • <exclude name="regtest" /> regtest 그룹의 테스트 메소드가 실행에 적합하지 않습니다.
  • testMethod1()testMethod2()regtest 그룹에 있으므로 실행되지 않습니다.
  • testMethod3()regtest 그룹에 있으므로 실행됩니다.

TestNG 메타 그룹 - 그룹 그룹

TestNG는 다른 그룹을 포함 할 수있는 그룹을 정의 할 수 있습니다. 메타 그룹은 하나 이상의 그룹을 논리적으로 결합하고 해당 그룹에 속한 @Test 메소드의 실행을 제어합니다.

아래의 예제에는 다양한 그룹에 속하는 다양한 @Test 메소드가 있습니다. 특정 스택에만 국한되고 회귀 및 수용 테스트는 거의 없습니다. 여기에서 메타 그룹을 만들 수 있습니다. 두 개의 간단한 MetaGroup을 선택해 봅시다 .

  1. allstack - liux.jboss.oracleaix.was.db2 그룹을 모두 포함하며 해당 그룹 중 하나에 속한 모든 테스트 메소드를 함께 실행할 수 있습니다.
  2. systemtest - allstack , regressionacceptance 그룹을 포함하며 해당 그룹 중 하나에 속한 모든 테스트 메소드를 함께 실행할 수 있습니다.

testng.xml 구성

<suite name="Groups of Groups">
    <test name="MetaGroups Test">
        <groups>
            <!-- allstack group includes both liux.jboss.oracle and aix.was.db2 groups -->
            <define name="allstack">
                <include name="liux.jboss.oracle" />
                <include name="aix.was.db2" />
            </define>

            <!-- systemtest group includes all groups allstack, regression and acceptance -->
            <define name="systemtest">
                <include name="allstack" />
                <include name="regression" />
                <include name="acceptance" />
            </define>

            <run>
                <include name="systemtest" />
            </run>
        </groups>

        <classes>
            <class name="example.group.MetaGroupsTest" />
        </classes>
    </test>

</suite>

MetaGroupsTest 클래스

package example.group;

import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class MetaGroupsTest {

    @BeforeMethod
    public void beforeMethod(){
        //before method stuffs - setup
    }

    @Test(groups = { "liux.jboss.oracle", "acceptance" })
    public void testOnLinuxJbossOracleStack() {
        //your test logic goes here
    }

    @Test(groups = {"aix.was.db2", "regression"} )
    public void testOnAixWasDb2Stack() {
        //your test logic goes here
    }

    @Test(groups = "acceptance")
    public void testAcceptance() {
        //your test logic goes here
    }

    @Test(groups = "regression")
    public void testRegression(){
        //your test logic goes here
    }

    @AfterMethod
    public void afterMthod(){
        //after method stuffs - cleanup
    }
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow