1. 概述

  1. class 相关的元素

    1. classes
    2. class
    3. methods
    4. exclude
    5. include

2. 背景

  1. 准备

    1. 了解了 package 及其子元素
  2. 问题

    1. 我只想测某几个特定的类
    2. 我还想对 类 的方法做过滤

3. 环境

  1. ide

    1. idea

      1. 2018.2
  2. 配置文件

    1. testng.xml
  3. 测试包结构

    1. com.test01.Test1

      1. method101
      2. method102
    2. com.test02.Test2
      1. method201
      2. method202
    3. com.test03.Test3
      1. method301
      2. method302
  4. 约定

    1. 配置文件, 我只截取 suite 以下的部分

4. 场景

1. 场景1: 执行某些类

  1. 概述

    1. 执行某些测试类

      1. 当然, 这个使用 package 配合 include 也能实现
  2. 配置文件

    <test name="Timed Test">
    <classes>
    <class name="com.test01.Test1"/>
    <class name="com.test02.Test2"/>
    <class name="com.test03.Test3"/>
    </classes>
    </test>
  3. 解释

    1. classes

      1. 概述

        1. 类的根元素
      2. 本质

        1. 容器元素

          1. 本身没什么属性
          2. 作为 class 元素的父元素
      3. 注意

        1. 一个 test 里只能有一个

          1. 多了会报错
    2. class

      1. 概述

        1. 类元素
      2. 本质

        1. 测试类信息
      3. 属性

        1. name

          1. 类名称
        2. 其他
          1. 后面还有, 后面再说
  4. 疑问

    1. 问题1: 我想一次测好多 class

      1. 方案1

        1. 使用 package
      2. 方案2
        1. 用一个个的 class 元素
        2. class 的 name 属性不支持正则
          1. 所以...
          2. 感觉有点小不合理
          3. 好了, 我们说下一个问题

2. 场景2: 我想执行测试类里的某些特定方法

  1. 概述

    1. 执行某些测试类
    2. 精确指定 方法
  2. 配置文件

    <test name="Timed Test">
    <classes>
    <class name="com.test01.Test1">
    <methods>
    <include name="method.*"/>
    <exclude name="method.*2"/>
    </methods>
    </class>
    </classes>
    </test>
  3. 解释

    1. methods

      1. 概述

        1. 方法的根元素
        2. 但并没有 方法子元素
      2. 本质

        1. 一个容器
    2. include & exclude

      1. 概述

        1. 这个在 package 里说过, 就不说了
        2. 他们当然支持正则

5. 问题

1. 问题1: 一个类同时出现在 多个class元素里

  1. 场景

    1. 同一个 类
    2. 在 class 出现多次
  2. 结果

    1. 只执行一次

2. 问题2: 方法 include 与 exclude

  1. 场景

    1. 同一个 方法
    2. 被 include 和 exclude 多次操控
  2. 结果

    1. 同 package

      1. 相同操作, 最多执行一次
      2. include 和 exclude 都有的时候, exclude 优先级高

3. 问题3: class 与 package 冲突

  1. 场景

    1. 类被 package exclude 了
    2. 类被 classes 包含了
  2. 结果

    1. 先 package 后 class

      1. 正常执行
    2. 先 classes 后 packages

      1. 会出问题

        1. packages 必须在 classes 前面
        2. 这些元素, 一个 test 只能有一个
    3. 如果同时 include

      1. 正常执行
      2. 不会重复

6. 结论

  1. 一个 suite 里, 可以有 多个 test
  2. 一个 test 里, 只能有一个 groups, packages, classes
    1. 而且得有顺序
  3. groups, packages, classes 里
    1. 元素的 include 和 exclude 还是很好判断的
    2. 但是跨元素的话
      1. 前面元素的 exclude 可能会失效
      2. 多个元素的 include 不会导致测试多次执行

ps

  1. 这个跨元素的一些矛盾操作, 感觉需要考虑一下

    1. 跨 test 还没考虑过呢

Java - Test - TestNG: testng.xml 元素 class的更多相关文章

  1. Java解析和生成XML

    1.Jaxb处理java对象和xml之间转换常用的annotation有: @XmlType @XmlElement @XmlRootElement @XmlAttribute @XmlAccesso ...

  2. Java自动化测试框架-12 - TestNG之xml文件详解篇 (详细教程)

    1.简介 现在这篇,我们来学习TestNG.xml文件,前面我们已经知道,TestNG就是运行这个文件来执行测试用例的.通过本篇,你可以进一步了解到:这个文件是配置测试用例,测试套件.简单来说,利用这 ...

  3. testng的xml文件说明(TestNG DTD)

    testNG启发自JUnit和NUnit的一种测试框架,通过使用testNG使的测试更简单.,比如如下的一些特点: 1.通过注释来管理测试 2.多线程并发执行测试,且是安全的 3.支持数据驱动测试 4 ...

  4. Java+maven+selenium3+testng 自动化测试环境IDEA

    idea .java环境变量jdk maven安装及环境变量配置这里就不多说了,网上有很多教程 这里我们只检测一下java.maven环境是否安装成功 win+R,运行cmd命令行:mvn -v   ...

  5. java 测试框架 TestNG

    Java中print.printf.println的区别 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和prin ...

  6. Exception in thread "main" java.lang.NoSuchMethodError: org.testng.TestNG.configure(Lorg/testng/CommandLineArgs;)V

    TestNG运行时报以下错误: Exception in thread "main" java.lang.NoSuchMethodError: org.testng.TestNG. ...

  7. jenkins通过maven指定testng的xml文件,并给testng代码传参

    1.jenkins设置参数化构建,设置要传的参数名和值 2.指定testng的xml文件,在jenkins的输入以下 3.在pom.xml文件分别引用jenkins的参数,设置两个property & ...

  8. Ant中批量调用TestNG的XML文件,并调用TestNgXlst生成漂亮的html测试报告

    from:http://blog.csdn.net/bwgang/article/details/7865184 1.在Ant中设置如下: <target name="run_test ...

  9. testNG jar包启动找不到org.testng.TestNG

    主要是因为打包时依赖的jar包没有打入,网上有很多需要将对应的jar单独拷贝出来然后通过classpath引用启动,但是感觉这个就是个无底洞.拷贝了这么多个包最后还是说找不到ObjectId 启动命令 ...

  10. java 解析并生成 XML

    在 java 中使用 Dom4j 解析 XML 对 XML 文件的解析,通常使用的是 Dom4j 和 jdom 作为XML解析工具. 在此只介绍下 Dom4j 对 XML 文件的解析使用方法. 1. ...

随机推荐

  1. [USACO12FEB] 附近的牛 Nearby Cows - 树形dp,容斥

    给你一棵 \(n\) 个点的树,点带权,对于每个节点求出距离它不超过 \(k\) 的所有节点权值和 \(m_i\) 随便定一个根,设\(f[i][j]\)表示只考虑子树,距离为\(j\)的权值和,\( ...

  2. JFinalSwagger插件

    个人博客 地址:http://www.wenhaofan.com/article/20190304101839 jfinal使用swagger的极简插件 码云地址:https://gitee.com/ ...

  3. Activiti工作流学习之SpringBoot整合Activiti5.22.0实现在线设计器(二)

    一.概述 网上有很多关于Eclipse.IDEA等IDE插件通过拖拽的方式来画工作流程图,个人觉得还是不够好,所以花点时间研究了一下Activiti在线设计器,并与SpringBoot整合. 二.实现 ...

  4. PTA-1003 我要通过!

    1003 我要通过!https://pintia.cn/problem-sets/994805260223102976/problems/994805323154440192 “答案正确”是自动判题系 ...

  5. vue学习指南:第十四篇(详细) - Vue的 路由 第四篇 ( 路由的导航守卫 )

    导航守卫 一.全局导航守卫 1. 全局导航守卫,把方法给 router,只要路由发生改变跳转都会触发这个函数 2. 每个路由 都有一个 meta 3. 全局导航守卫分两种: 1. 全局前置导航守卫:路 ...

  6. python面试的100题(17)

    内存管理与垃圾回收机制 48.哪些操作会导致Python内存溢出,怎么处理? 内存溢出:你申请了10个字节的内存,但写入了大于10个字节的数据会导致内存溢出 内存溢出原因:1.内存中加载的数据量过于庞 ...

  7. 全排列(dfs-有重复数字)

    给出一个字符串S(可能有重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列.例如:S = "1312", 输出为:   1123 1132 1213 1231 131 ...

  8. 计蒜客 - A1633.蒜头君的数轴

    我感觉出的很好的一道题,首先不难想到(其实我刚开始没想到),加点的个数就是找已有点两两形成区间的gcd,那么问题就出在了复杂度上,每次循环哪个区间不要复杂度过高,所以运用正反两次前缀和(?好像不能这么 ...

  9. 搭建Hexo实现个人网站详细教程

    全网最全小白搭建Hexo+Gitee/Coding/Github 全网最全小白搭建Hexo+Gitee/Coding/Github 本站内容已全部转移到https://www.myyuns.ltd,具 ...

  10. Mybatis学习笔记——输入参数parameterType、Mybatis调用存储过程

    输入参数:parameterType(两种取值符号) 1.类型为简单类型 区别:     (1) #{可以为任意值}         ${vaue}--->标识符只能是value     (2) ...