TestNG提供了很多执行方式,下面做简单介绍。

1.XML指明测试类,按照类名执行,其中可以指定包名,也可指定无包名:

带包名,运行ParameterSample类和ParameterTest类

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <suite name="Suite1" verbose="1" >
  3. <test name="Regression1">
  4. <classes>
  5. <class name="test.sample.ParameterSample"/>
  6. <class name="test.sample.ParameterTest"/>
  7. </classes>
  8. </test>
  9. </suite>

不带包名,不建议使用

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <suite name="Suite1" verbose="1" >
  3. <test name="Nopackage" >
  4. <classes>
  5. <class name="NoPackageTest" />
  6. </classes>
  7. </test>
  8. </suite>

2.XML指定包名,执行包内的所有测试类

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <suite name="Suite1" verbose="1" >
  3. <test name="Regression1" >
  4. <packages>
  5. <package name="test.sample" />
  6. </packages>
  7. </test>
  8. </suite>

3.XML中指定某个类的某些方法

  1. <test name="Test1">
  2. <classes>
  3. <class name="example1.Test1">
  4. <methods>
  5. <include name=".*enabledTestMethod.*"/>
  6. <exclude name=".*brokenTestMethod.*"/>
  7. </methods>
  8. </class>
  9. </classes>
  10. </test>

4.XML指定组,需要在代码里面设定组

代码:

  1. @Test(groups={"g2"})
  2. public void test4() {
  3. System.out.println("this is test4");
  4. }
  5. @Test(groups={"g1"})
  6. public void test5() {
  7. System.out.println("this is test5");
  8. }
  9. @Test(groups={"g1"})
  10. public void test10() {
  11. System.out.println("this is test10");
  12. }

XML:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <suite name="Suite">
  3. <test name="Test">
  4. <groups>
  5. <run>
  6. <exclude name="g2" />
  7. <include name="g1" />
  8. </run>
  9. </groups>
  10. <classes>
  11. <class name="test.testng.TestOrder"/>
  12. </classes>
  13. </test> <!-- Test -->
  14. </suite> <!-- Suite -->

5.排除某个不执行的测试方法,下面的示例中testMethod2包含broken,在xml中排除了包含broken的方法,所以testMehodd2则不会执行。

  1. @Test(groups = {"checkintest", "broken"} )
  2. public void testMethod2() {
  3. }
  1. <test name="Simple example">
  2. <groups>
  3. <run>
  4. <include name="checkintest"/>
  5. <exclude name="broken"/>
  6. </run>
  7. </groups>
  8.  
  9. <classes>
  10. <class name="example1.Test1"/>
  11. </classes>
  12. </test>

也可以使用@Test(enabled=false)来设定。

6.XML指定组中组

代码:

  1. @Test(groups={"g2"})
  2. public void test4() {
  3. System.out.println("this is test4");
  4. }
  5. @Test(groups={"g1"})
  6. public void test5() {
  7. System.out.println("this is test5");
  8. }
  9. @Test(groups={"g1","g3"})
  10. public void test10() {
  11. System.out.println("this is test10");
  12. }

XML:定义一个name=fun的组,包含g3方法,再定义一个name=all的组,包含以g开头的所有方法

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <suite name="Suite" parallel="true">
  3. <test name="Test">
  4. <groups>
  5. <define name="fun">
  6. <include name="g3"/>
  7. </define>
  8. <define name="all">
  9. <include name="g.*" />
  10. </define>
  11. <run>
  12. <include name="all" />
  13. </run>
  14. </groups>
  15. <classes>
  16. <class name="test.testng.TestOrder"/>
  17. </classes>
  18. </test> <!-- Test -->
  19. </suite> <!-- Suite -->

print:

this is test10
this is test5
this is test4

TestNG之执行测试类方式的更多相关文章

  1. testng多线程并行执行测试

    testng多线程并行执行测试 testng多线程并行执行测试 并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者子组件的能力.TestNG允许我们以 ...

  2. Spring4.2.3+Hibernate4.3.11整合( IntelliJ maven项目)(使用Annotation注解)(Junit测试类)

    1. 在IntelliJ中新建maven项目 给出一个建好的示例 2. 在pom.xml中配置依赖 包括: spring-context spring-orm hibernate-core mysql ...

  3. 测试框架Unitest的运行原理,以及多个测试类中的执行顺序以及简化方法

    单元测试单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证.对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一 ...

  4. testNG官方文档翻译-5 测试方法,测试类和测试组

    5.1 - 测试方法 测试方法是被 @Test注解的方法.这些方法的返回值会被忽略,除非在testng.xml中将allow-return-values设置为true. <suite allow ...

  5. unittest对单个测试类的多种测试执行方法总结

    基于unittest测试框架编写的测试脚本,一般单个测试类下会有多个测试方法,unittest也提供多种测试执行方式,下面就不同方式或者需求一一实操并说明: 一.使用unittest下main()方法 ...

  6. TestNG 入门指导——理解testng.xml执行/不执行某个包,某个类,某个方法

    这一篇我们主要学习如下几个知识点: ⑴关于testng.xml ⑵创建一个测试套件 ⑶执行testng.xml ⑷在测试套件中创建多个测试用例 ⑸在用例中增加class,packages, metho ...

  7. C# -- 等待异步操作执行完成的方式 C# -- 使用委托 delegate 执行异步操作 JavaScript -- 原型:prototype的使用 DBHelper类连接数据库 MVC View中获取action、controller、area名称、参数

    C# -- 等待异步操作执行完成的方式 C# -- 等待异步操作执行完成的方式 1. 等待异步操作的完成,代码实现: class Program { static void Main(string[] ...

  8. Java+Selenium 3.x 实现Web自动化 - Maven打包TestNG,利用jenkins执行测试

    1. Jenkins本地执行测试 or 服务器端执行测试 测试代码计划通过jenkins执行时,通过网上查询各种教程,大多数为本地执行测试,由此可见,本地执行是大多数人的选择. 经过探讨,最终决定采用 ...

  9. myBatis执行测试批量删除,出现测试类正常显示,但数据库数据没变

    一般在测试myBatis运行正常,但数据库数据不变时,有可能是SQL语句有问题,检查SQL语句没问题,但数据库依然没变,就说明myBatis方法执行后并未提交到数据库,可尝试在测试类添加   sess ...

随机推荐

  1. python,python3

    当下主流的Linux发行版都集成了python2,直接在终端输入$python就可进入交互式解释器,或者输入$python3进入python3的解释器,当然,也可以使用这个解释器直接翻译一个pytho ...

  2. jquery动态创建节点

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. Smartforms常见问题

    分类: 1.使用SFSY-FORMPAGES显示总页数的时候,如果页数大于9,将会在前10页显示成星号* 解决: 有时候这样做完之后,星号*是没有了,但是字体会有颠倒或者重叠的现象. 如果出了这个问题 ...

  4. MySQL数据库中字符集的问题

    今天在做Hibernate案例,往mysql中写记录的时候,出现ERROR: Incorrect string value: '\xE5\x8A\xA0\xE5\x86\x85...' for col ...

  5. English Training Material - 03

    Cross-cultural understanding (2) 1 The following text is about cultural diversity. Read it through o ...

  6. iOS didReceiveMemoryWarning 的处理

    当iOS触发didReceiveMemoryWarning这个方法的时候,我们一般会做一些手动处理,强制清理掉一些目前不用的数据.但是这个方法并不只是单纯的通知开发者你的内存已经吃紧了,系统通知你的同 ...

  7. 【读书笔记】iOS-装箱

    通常将一个基本类型的数据包装成对象叫做装箱,从对象中提取基本类型的数据叫做取消装箱.有些语言有自动装箱功能,它可以自动包装基本基础类型的数据,也可以自动从包装后的对象中提取基础数据.Objective ...

  8. Android 网络编程基础之简单聊天程序

    前一篇讲了Android的网络编程基础,今天写了一个简单的聊天程序分享一下 首先是服务端代码: package com.jiao.socketdemo; import java.io.Buffered ...

  9. 【文章内容来自《Android 应用程序开发权威指南》(第四版)】如何设计兼容的用户界面的一些建议(有删改)

    最近一直在看的一本书是<Android 应用程序开发权威指南>(第四版),十分推荐.书中讲到了一些用户界面设计的规范,对于初学者我认为十分有必要,在这里码给大家,希望对我们都有用. 在我们 ...

  10. Java集合 之 List 集合

    1.什么是Lsit集合? List集合是一种元素有序的,可重复的集合,集合中每个元素都有自己的元素索引.List集合允许可重复的元素,可以通过索引来访问指定位置的元素. 2.Java8改进的List接 ...