testng
TestNG-grupper
Sök…
Syntax
- @Test (grupper = {"grupp1", "grupp.regression"}, beroende påOnGroups = {"grupp2", "grupp3"})
TestNG Groups konfiguration och grundexempel
Grupper kan konfigureras enligt Suite
och / eller Test
element testng.xml
. Alla grupper som är markerade som inkluderade i tesng.xml
kommer att beaktas för exekvering, uteslutna en kommer att ignoreras. Om en @Test
metod har flera grupper och från de grupperna om några enskilda grupper utesluts i @Test
kommer inte testng.xml
@Test
metoden att köras.
Nedan är en typisk testng.xml
konfigurationen vid Test
nivå för att köra grupper:
<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>
Och så kommer testklassen att se ut:
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
}
}
När du kör denna
GroupTest
TestNG
klass kommer endasttestMethod3()
att köras.
Förklaring:
-
<include name="functest" />
alla testmetoder förfunctest
är kvalificerade för körning om det inte utesluts av någon annan grupp. -
<exclude name="regtest" />
inga testmetoder förregtest
gruppen är kvalificerade för körning. -
testMethod1()
ochtestMethod2()
är iregtest
grupp, så de kommer inte att ha körts. -
testMethod3()
är iregtest
grupp, så det kommer att köras.
TestNG MetaGroups - Grupper av grupper
TestNG tillåter att definiera grupper som kan inkludera andra grupper. MetaGroups kombinerar logiskt en eller flera grupper och kontrollerar genomförandet av @Test
metoderna som tillhör dessa grupper.
I nedanstående exempel finns det olika @Test
metoder som tillhör olika grupper. Få är specifika för särskild stack och få är regression och acceptans tester. Här kan MetaGroups skapas. Låt oss välja två enkla MetaGroups :
-
allstack
- inkluderar bådeliux.jboss.oracle
ochaix.was.db2
grupper och gör att alla testmetoder som tillhör någon av dessa grupper kan köras tillsammans. -
systemtest
- inkluderarallstack
,regression
ochacceptance
och gör att alla testmetoder som tillhör någon av dessa grupper kan köras tillsammans.
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- klass
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
}
}