testng
Grupos de prueba
Buscar..
Sintaxis
- @Test (groups = {"group1", "group.regression"}, Depende de los grupos = {"group2", "group3"})
Configuración de Grupos de TestNG y ejemplo básico.
Los grupos se pueden configurar bajo el elemento Suite
y / o Test
de testng.xml
. Todos los grupos que están marcados como incluidos en tesng.xml
se considerarán para ejecución, se excluirá uno excluido. Si un método @Test
tiene múltiples grupos y de esos grupos, si alguno de los grupos se excluye en testng.xml
ese método @Test
no se ejecutará.
A continuación se muestra la configuración típica de testng.xml
en Test
nivel de Test
para grupos en ejecución:
<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>
Y así se verá la clase de prueba:
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
}
}
Al ejecutar esta clase
GroupTest
TestNG
solo setestMethod3()
.
Explicación:
-
<include name="functest" />
todos los métodos de prueba del grupofunctest
son elegibles para ejecutarse si no están excluidos por ningún otro grupo. -
<exclude name="regtest" />
no se pueden ejecutar métodos de prueba del gruporegtest
. -
testMethod1()
ytestMethod2()
están en el gruporegtest
, por lo que no se ejecutarán. -
testMethod3()
está en el gruporegtest
, por lo que se ejecutará.
TestNG MetaGroups - Grupos de grupos
TestNG permite definir grupos que pueden incluir otros grupos. Los MetaGrupos combinan lógicamente uno o más grupos y controlan la ejecución de los métodos @Test
que pertenecen a esos grupos.
En el siguiente ejemplo hay varios métodos @Test
que pertenecen a diferentes grupos. Pocos son específicos de una pila en particular y pocos son pruebas de regresión y aceptación. Aquí se pueden crear MetaGrupos. Vamos a elegir cualquiera de los dos MetaGrupos simples:
-
allstack
: incluye los gruposliux.jboss.oracle
yaix.was.db2
y permite que todos los métodos de prueba que pertenecen a cualquiera de esos grupos se ejecuten juntos. -
systemtest
: incluyeallstack
regression
grupos deallstack
,regression
yacceptance
y permite que todos los métodos de prueba que pertenecen a cualquiera de esos grupos se ejecuten juntos.
configuración 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 clase
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
}
}