testng
TestNG-Gruppen
Suche…
Syntax
- @Test (groups = {"group1", "group.regression"}, hängt vonOnGroups = {"group2", "group3"})
TestNG Gruppiert Konfiguration und grundlegendes Beispiel
Gruppen können unter Suite
und / oder Test
Element von testng.xml
. Alle Gruppen, die als in tesng.xml
enthalten tesng.xml
sind, werden für die Ausführung berücksichtigt. Ausgeschlossene Gruppen werden ignoriert. Wenn eine @Test
Methode mehrere Gruppen hat und aus diesen Gruppen Einzelgruppen in testng.xml
ausgeschlossen sind, wird die testng.xml
@Test
Methode nicht ausgeführt.
Unten ist die typische testng.xml
Konfiguration auf Test
- Ebene Gruppen für den Betrieb:
<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>
Und so wird es in der Testklasse aussehen:
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
}
}
Beim Ausführen dieser
GroupTest
TestNG
Klasse wird nurtestMethod3()
ausgeführt.
Erläuterung:
-
<include name="functest" />
Alle Testmethoden derfunctest
group können ausgeführt werden, wenn sie von keiner anderen Gruppe ausgeschlossen werden. -
<exclude name="regtest" />
keine Testmethoden derregtest
Gruppe ausgeführt werden. -
testMethod1()
undtestMethod2()
befinden sich in derregtest
Gruppe, sodass sie nicht ausgeführt wurden. -
testMethod3()
befindet sich in der Gruppe "regtest
" und wird daher ausgeführt.
TestNG-Metagruppen - Gruppen von Gruppen
Mit TestNG können Gruppen definiert werden, die andere Gruppen enthalten können. MetaGroups kombinieren logisch eine oder mehrere Gruppen und steuern die Ausführung der zu diesen Gruppen gehörenden @Test
Methoden.
Im folgenden Beispiel gibt es verschiedene @Test
Methoden, die zu verschiedenen Gruppen gehören. Wenige sind spezifisch für bestimmte Stapel und wenige sind Regressions- und Akzeptanztests. Hier können Metagruppen angelegt werden. Lassen Sie uns zwei einfache MetaGruppen auswählen :
-
allstack
- enthält sowohl die Gruppenliux.jboss.oracle
als auchaix.was.db2
und ermöglicht dasaix.was.db2
aller Testmethoden, die zu einer dieser Gruppen gehören. -
systemtest
- umfasst alleallstack
,regression
undacceptance
und ermöglicht dasallstack
aller Testmethoden, die zu einer dieser Gruppen gehören.
testng.xml Konfiguration
<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- Klasse
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
}
}