TestNG - 複数のテストクラスを実行する(スイートテスト)

TestNG –複数のテストクラスの実行(スイートテスト)

testng-suite-test

このチュートリアルでは、複数のTestNGテストケース(クラス)、つまりスイートテストを一緒に実行する方法を示します。

1. テストクラス

次の3つのテストクラスを確認します。

TestConfig.java

package com.example.testng.examples.suite;

import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;

//show the use of @BeforeSuite and @BeforeTest
public class TestConfig {

    @BeforeSuite
    public void testBeforeSuite() {
        System.out.println("testBeforeSuite()");
    }

    @AfterSuite
    public void testAfterSuite() {
        System.out.println("testAfterSuite()");
    }

    @BeforeTest
    public void testBeforeTest() {
        System.out.println("testBeforeTest()");
    }

    @AfterTest
    public void testAfterTest() {
        System.out.println("testAfterTest()");
    }

}

TestDatabase.java

package com.example.testng.examples.suite;

import org.testng.annotations.Test;

public class TestDatabase {

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

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

    @Test(groups = "db-nosql")
    public void testConnectMongoDB() {
        System.out.println("testConnectMongoDB");
    }

    @Test(groups = { "db", "brokenTests" })
    public void testConnectMySQL() {
        System.out.println("testConnectMySQL");
    }

}

TestOrder.java

package com.example.testng.examples.suite;

import org.testng.annotations.Test;

public class TestOrder {

    @Test(groups={"orderBo", "save"})
    public void testMakeOrder() {
      System.out.println("testMakeOrder");
    }

    @Test(groups={"orderBo", "save"})
    public void testMakeEmptyOrder() {
      System.out.println("testMakeEmptyOrder");
    }

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

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

}

2. Testng.xml

上記のテストクラスを実行するには、XMLファイル–testng.xml(任意のファイル名)ファイルを作成し、次のように詳細を定義します。

testng.xml





    
        
            
            
        
    

    
        
            
            
        
    

出力

[TestNG] Running:
  C:\example_projects\TestNG\src\test\resources\testng-all.xml

testBeforeSuite()

testBeforeTest()
testFindOrder
testMakeEmptyOrder
testMakeOrder
testUpdateOrder
testAfterTest()

testBeforeTest()
testConnectMongoDB
testConnectMsSQL
testConnectMySQL
testConnectOracle()
testAfterTest()

testAfterSuite()

3. その他の例

一般的な使用例を次に示します。

3.1クラス名の代わりにパッケージ名を指定します。

testng.xml





    
        
            
        
    

3.2含めるまたは除外するメソッドを指定します。

testng.xml





  
    
        
        
            
                
                
                
            
        
    
  

出力

[TestNG] Running:
  C:\example_projects\TestNG\src\test\resources\testng.xml

testBeforeSuite()
testBeforeTest()
testMakeOrder
testUpdateOrder
testAfterTest()
testAfterSuite()

3.3含めるまたは除外するグループを指定します。

testng.xml





  
    
        
            
            
        
    

    
        
    
  

出力

[TestNG] Running:
  C:\example_projects\TestNG\src\test\resources\testng.xml

testConnectMsSQL
testConnectOracle()