Grouping of Tests
In this topic, we will see how to group tests.
We'll cover the following
What is the grouping of tests? #
TestNG allows to group related tests using tags. We can also have groups depending on other groups. TestNG allows having configuration methods that can run before starting or ending of tests belonging to a group. We can invoke tests belonging to a certain group or regular expressions too, while excluded from another group.
How to group tests? #
Each test can belong to one or more groups. This grouping can be done to test methods or test classes. When giving at both places, the one given at the test method takes precedence. This becomes Partial test grouping, as all the test methods in the class belong to a group, and this method belongs to another.
@Test(groups = { "functional" })
public class SampleTestClass {
@Test(groups = { "sanity", "functional" })
public void testA() {
}
@Test(groups = { "sanity" })
public void testB() {
}
public void testC() {
}
@Test(dependsOnGroups = { "sanity" } )
public void testD() {
}
}
Here, in the above example, testA
belongs to both sanity
and functional
groups. testB
belongs to the sanity
group only. testC
belongs to the functional
group only because there is no group explicitly annotated over this test method and therefore inherits from the class level @Test
.
testD
will not start until all the test methods belonging to the group sanity
are completed, and org.testng.TestNGException
will be thrown if no tests belonging to sanity
were run before testD
.
Now that you are familiar with grouping the tests, in the next lesson, you will learn about @DataProvider
and @Factory
annotations.
Get hands-on with 1400+ tech skills courses.