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()