testng
Группы TestNG
Поиск…
Синтаксис
- @Test (groups = {"group1", "group.regression"}, dependOnGroups = {"group2", "group3"})
Конфигурация групп TestNG и базовый пример
Группы могут быть настроены в разделе «Элемент Suite
и / или « Test
в testng.xml
. Все группы, отмеченные как включенные в tesng.xml
будут считаться tesng.xml
, исключены, они будут проигнорированы. Если метод @Test
имеет несколько групп и из этих групп, если в testng.xml
исключены какие-либо отдельные группы, метод @Test
не будет запущен.
Ниже приведена типичная конфигурация testng.xml
на уровне Test
для запуска групп:
<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
группыfunctest
имеют право на запуск, если они не исключены какой-либо другой группой. -
<exclude name="regtest" />
никакие методыregtest
группыregtest
не могут быть запущены. -
testMethod1()
иtestMethod2()
находятся в группеregtest
, поэтому они не будут выполняться. -
testMethod3()
находится в группеregtest
, поэтому он будет работать.
TestNG MetaGroups - Группы групп
TestNG позволяет определять группы, которые могут включать другие группы. MetaGroups логически объединяют одну или несколько групп (групп) и контролируют выполнение методов @Test
принадлежащих к этим группам.
В приведенном ниже примере существуют различные методы @Test
принадлежащие разным группам (группам). Немногие специфичны для конкретного стека, и немногие являются регрессионными и приемочными испытаниями. Здесь могут быть созданы MetaGroups. Давайте выберем любые две простые MetaGroups :
-
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
}
}