TestNG - グループテスト

TestNG –グループテスト

このチュートリアルでは、TestNGでグループテストを行う方法を示します。

1. メソッドのグループ

テストグループの例を確認します。

  1. runSelenium()とrunSelenium1()は、グループselenium-testに属しています。

  2. testConnectOracle()およびtestConnectMsSQL()は、グループdatabaseに属しています。

  3. runFinal()は、グループselenium-testdatabaseが渡された場合に実行されます。

TestGroup.java

package com.example.testng.examples.group;

import org.testng.annotations.AfterGroups;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Test;

public class TestGroup {

    @BeforeGroups("database")
    public void setupDB() {
        System.out.println("setupDB()");
    }

    @AfterGroups("database")
    public void cleanDB() {
        System.out.println("cleanDB()");
    }

    @Test(groups= "selenium-test")
    public void runSelenium() {
        System.out.println("runSelenium()");
    }

    @Test(groups= "selenium-test")
    public void runSelenium1() {
        System.out.println("runSelenium()1");
    }

    @Test(groups = "database")
    public void testConnectOracle() {
        System.out.println("testConnectOracle()");
    }

    @Test(groups = "database")
    public void testConnectMsSQL() {
        System.out.println("testConnectMsSQL");
    }

    @Test(dependsOnGroups = {"database","selenium-test"})
    public void runFinal() {
        System.out.println("runFinal");
    }

}

出力

//group = selenium-test
runSelenium()
runSelenium()1

//group = database
setupDB()
testConnectMsSQL
testConnectOracle()
cleanDB()

//dependsOnGroups = database, selenium-test
runFinal

PASSED: runSelenium
PASSED: runSelenium1
PASSED: testConnectMsSQL
PASSED: testConnectOracle
PASSED: runFinal

2. クラスのグループ

「グループ」はクラスレベルで適用できます。 以下の例では、このクラス「TestSelenium」のすべてのパブリックメソッドはグループselenium-testに属しています。

TestSelenium.java

package com.example.testng.examples.group;

import org.testng.annotations.Test;

@Test(groups= "selenium-test")
public class TestSelenium {

    public void runSelenium() {
        System.out.println("runSelenium()");
    }

    public void runSelenium1() {
        System.out.println("runSelenium()1");
    }

}

2つのテストクラスを実行するXMLファイルを作成します。

testng.xml





    
        
            
            
        
    

    
    

        
            
                
            
        

        
            
            
        

    

出力

//test name = final
runSelenium()
runSelenium()1
setupDB()
testConnectMsSQL
testConnectOracle()
cleanDB()
runFinal

//test name = selenium
runSelenium()
runSelenium()1

===============================================
TestAll
Total tests run: 7, Failures: 0, Skips: 0
===============================================

3. その他の例

3.1 A test method can belong to multiple groups.

    @Test(groups = {"mysql","database"})
    public void testConnectMsSQL() {
        System.out.println("testConnectMsSQL");
    }

3.2 The above result is executed via Eclipse TestNG Plugin.

eclipse-testng