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. 论文阅读笔记(二)【IJCAI2016】:Video-Based Person Re-Identification by Simultaneously Learning Intra-Video and Inter-Video Distance Metrics

    摘要 (1)方法: 面对不同行人视频之间和同一个行人视频内部的变化,提出视频间和视频内距离同时学习方法(SI2DL). (2)模型: 视频内(intra-vedio)距离矩阵:使得同一个视频更紧凑: ...

  2. 海康 - 终端服务器 - TS-5012-F

    简介 型号描述 主要特点 典型应用 技术参数        型号 参数 TS-5012-F (1T) TS-5012-F (2T) TS-5012-F (4T) TS-5012-F (8T) 系统参数 ...

  3. Redis到底是多线程还是单线程?线程安全吗,还需要加锁吗?

    0. redis单线程问题 单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程. 1. 为什么说redis能够快速执行 (1) 绝大部 ...

  4. 白面系列 kafka

    kafka是一个分布式发布订阅消息系统,也可叫做MQ系统,MQ是Message Queue,消息队列. 通俗点,生产者往队列里写消息,消费者从队列里读.专业点,Producer通过TCP协议发送消息到 ...

  5. SpringBoot--application.yml

    application.properties 配置了端口号:9090 application.yml 也配置了端口号:8080 SpringBoot使用9090,以属性为主 1.在applicatio ...

  6. Consider using the `--user` option or check the permissions.

    安装pip install C:\Users\道路\Documents\EGDownloads\pip-1.0.tar.gz 报错:Consider using the `--user` option ...

  7. SQL With As的用法

    WITH AS,也叫子查询部分(subquery factoring),可以定义一个SQL片断,该SQL片断会被整个SQL语句用到.可以使SQL语句的可读性更高,也可以在UNION ALL的不同部分, ...

  8. valign

    值 描述 top 对内容进行上对齐. middle 对内容进行居中对齐(默认值). bottom 对内容进行下对齐. baseline 与基线对齐.

  9. CentOS 7 yum配置阿里云镜像(转)

    1.下载源配置 凡是下载国外的软件,比如用npm,pip,yum有时下载速度感人,最好配置国内镜像地址 yum配置阿里云镜像参考:https://blog.csdn.net/hnmpf/article ...

  10. this.$nextTick

    首先我们先来看看官方介绍的用法: 将回调延迟到下次 DOM 更新循环之后执行.在修改数据之后立即使用它,然后等待 DOM 更新. 它跟全局方法 Vue.nextTick 一样,不同的是回调的 this ...