testNG类分组是指在类上添加@Test(groups="参数值")标识。
以下包含了三个java类,和一个xml文件,其中GroupsOnClass1和GroupsOnClass2同属于一个分组@Test(groups = "stu") GroupsOnClass3属于另外一个分组@Test(groups = "teacher")。
通过运行结果可以看出来,只有class中类上有 @Test(groups = "stu")标识的和xml <groups> <include name="stu"/> name值一样的类才会运行。
java代码如下
1 package com.course.testng.groups; 2 3 import org.testng.annotations.Test; 4 5 @Test(groups = "stu") 6 public class GroupsOnClass1 { 7 public void stu1() { 8 System.out.println("GroupsOnClass1类中的stu1运行"); 9 } 10 11 public void stu2() { 12 System.out.println("GroupsOnClass1类中的stu2运行"); 13 } 14 15 }
package com.course.testng.groups; import org.testng.annotations.Test; @Test(groups = "stu") public class GroupsOnClass2 { public void stu1() { System.out.println("GroupsOnClass2类中的stu1运行"); } public void stu2() { System.out.println("GroupsOnClass2类中的stu2运行"); } }
package com.course.testng.groups; import org.testng.annotations.Test; @Test(groups = "teacher") public class GroupsOnClass3 { public void stu1() { System.out.println("GroupsOnClass3类中的teacher1运行"); } public void stu2() { System.out.println("GroupsOnClass3类中的teacher2运行"); } }
xml配置如下
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <suite name="suitname"> 3 <test name="onlyAll"> 4 <groups> 5 <run> 6 <include name="stu"/> 7 </run> 8 </groups> 9 <classes> 10 <class name="com.course.testng.groups.GroupsOnClass1"/> 11 <class name="com.course.testng.groups.GroupsOnClass2"/> 12 <class name="com.course.testng.groups.GroupsOnClass3"/> 13 </classes> 14 </test> 15 16 </suite>
运行结果
1 GroupsOnClass1类中的stu1运行 2 3 GroupsOnClass1类中的stu2运行 4 5 6 7 GroupsOnClass2类中的stu1运行 8 9 GroupsOnClass2类中的stu2运行 10 11 12 =============================================== 13 suitname 14 Total tests run: 4, Failures: 0, Skips: 0 15 =============================================== 16 17 18 Process finished with exit code 0