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

このチュートリアルでは、複数の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()