Java - Test - TestNG: testng.xml 元素 group
1. 概述
- group 相关的元素
- groups
- run
- 其他相关(不准备提了)
- package
- class
- include
- exclude
2. 背景
-
准备
- 了解了 class 及其子元素
-
问题
- 对 测试范围 做进一步灵活的划分
3. 环境
-
ide
- idea
- 2018.2
- idea
-
配置文件
- testng.xml
-
测试包结构
- com.test.group
- TestGroup
- testMethod01
- test-group
- testMethod02
- testMethod03
- test-group
- testMethod01
- MuiltGroup
- testMethod01
- group-one
- testMethod02
- group-one
- group-two
- testMethod03
- group-two
- testMethod01
- TestGroup
- com.test.group
-
约定
- 配置文件, 我只截取 suite 以下的部分
- group 相关注解
- 简略说下
- @Test(groups={"group-one", "group-two"})
- 简略说下
4. 场景
场景1: 执行 test-group 组用例
-
概述
- 执行 test-group 组的测试用例
-
配置文件
<test name="Timed Test"> <groups> <run> <include name="test-group"/> </run> </groups> <!--<packages>--> <!--<package name="com.test.groups"/>--> <!--</packages>--> <classes> <class name="com.test.groups.TestGroup"/> </classes> </test>
-
解释
-
groups
-
概述
- 分组的根元素
-
本质
- 分组的容器
-
子元素
- run
- 其他
- 暂时不讲, 涉及到比较复杂的分组
-
-
run
-
概述
- 存放 分组过滤的规则
-
本质
- 规则容器
-
子元素
- include
- exclude
- 这俩的东西, 我就不多讲了
-
-
packages/classes
-
概述
- 指定执行范围
-
本质
- 真正的执行范围
- groups 只是修饰的作用
- 如果没有 packages 或者 classes
- 这个肯定会报错
-
-
其他
- 一个 groups 下面只能有 一个run
-
5. 问题
问题1: 一个方法属于多个 group, 多次 include
-
场景
- 一个方法
- 同时属于多个 group
- 连续 include 两次
-
结果
- 只执行一次
-
其他
- 先 include, 后 exclude
- 不执行
- 先 exclude, 后 include
- 不执行
- 先 include, 后 exclude
问题2: 一个方法跨 test 执行
-
场景
- 一个方法
- 出现在 两个 test 里
-
结果
- 执行 2 次
ps
- 其他能讲的东西
- group 还有更加复杂的方式
- 这个后面会说
- before / after
- 多线程
- 注解
- group 还有更加复杂的方式
尽量尝试解释清楚; 自己校对能力有限, 如果有错误欢迎指出