testng
TestNGグループ
サーチ…
構文
- @Test(groups = {"group1"、 "group.regression"}、dependsOnGroups = {"group2"、 "group3"})
TestNGグループの設定と基本的な例
グループは、 testng.xml
Suite
および/またはTest
要素で設定できます。 tesng.xml
含まれているとマークされたすべてのグループは実行対象とみなされ、除外されたtesng.xml
は無視されます。場合@Test
任意の単一のグループが除外されている場合の方法は、複数のグループを持っており、それらのグループからtestng.xml
という@Test
メソッドが実行されません。
実行中のグループのTest
レベルでの典型的なtestng.xml
構成を以下に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
グループのテストメソッドはregtest
できません。 -
testMethod1()
とtestMethod2()
はregtest
グループ内にあるため、実行されません。 -
testMethod3()
はregtest
グループにあり、実行されます。
TestNGメタグループ - グループのグループ
TestNGでは、他のグループを含むグループを定義することができます。メタグループは、1つまたは複数のグループを論理的に結合し、それらのグループに属する@Test
メソッドの実行を制御します。
以下の例では、異なるグループに属するさまざまな@Test
メソッドがあります。特定のスタックに特有のものはほとんどなく、回帰テストと受け入れテストはほとんどありません。ここでメタグループを作成できます。 2つの簡単なメタグループを選んでみましょう:
-
allstack
-liux.jboss.oracle
とaix.was.db2
両方のグループを含み、これらのグループのいずれかに属するすべてのテストメソッドを一緒に実行できるようにします。 -
systemtest
-allstack
、regression
およびacceptance
グループを含み、これらのグループのいずれかに属するすべてのテストメソッドを一緒に実行できるようにします。
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