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

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

带包名,运行ParameterSample类和ParameterTest类

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite1" verbose="1" >
<test name="Regression1">
<classes>
<class name="test.sample.ParameterSample"/>
<class name="test.sample.ParameterTest"/>
</classes>
</test>
</suite>

不带包名,不建议使用

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite1" verbose="1" >
<test name="Nopackage" >
<classes>
<class name="NoPackageTest" />
</classes>
</test>
</suite>

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

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

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

<test name="Test1">
<classes>
<class name="example1.Test1">
<methods>
<include name=".*enabledTestMethod.*"/>
<exclude name=".*brokenTestMethod.*"/>
</methods>
</class>
</classes>
</test>

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

代码:

    @Test(groups={"g2"})
public void test4() {
System.out.println("this is test4");
}
@Test(groups={"g1"})
public void test5() {
System.out.println("this is test5");
}
@Test(groups={"g1"})
public void test10() {
System.out.println("this is test10");
}

XML:

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite">
<test name="Test">
<groups>
<run>
<exclude name="g2" />
<include name="g1" />
</run>
</groups>
<classes>
<class name="test.testng.TestOrder"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->

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

@Test(groups = {"checkintest", "broken"} )
public void testMethod2() {
}
<test name="Simple example">
<groups>
<run>
<include name="checkintest"/>
<exclude name="broken"/>
</run>
</groups> <classes>
<class name="example1.Test1"/>
</classes>
</test>

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

6.XML指定组中组

代码:

    @Test(groups={"g2"})
public void test4() {
System.out.println("this is test4");
}
@Test(groups={"g1"})
public void test5() {
System.out.println("this is test5");
}
@Test(groups={"g1","g3"})
public void test10() {
System.out.println("this is test10");
}

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

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="true">
<test name="Test">
<groups>
<define name="fun">
<include name="g3"/>
</define>
<define name="all">
<include name="g.*" />
</define>
<run>
<include name="all" />
</run>
</groups>
<classes>
<class name="test.testng.TestOrder"/>
</classes>
</test> <!-- Test -->
</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. AppCan可以视为Rexsee的存活版

    今天看到地宝的几个APP用appcan做的,我顿时惊呆了. 1. 走的同样是中间件的模式,支持原生UI界面的访问: 2. 在线打包的方式,进行资源的限制,以便商业化支持:

  2. python 学习之电脑的发展历史

    电脑的发展历史 电脑的学名叫计算机,电脑是用来做计算的.在古时候,人们最早使用的计算工具可能是手指,英文单词“digit”既有“数字”的意思,又有“手指“的意思.古人用石头打猎,所以还有可能是石头来辅 ...

  3. .NET Core Roadmap

    This post was written by Scott Hunter. It has been about two weeks since we shipped .NET Core / ASP. ...

  4. H5调用Android拨打电话

    1.AndroidAndJSInterface.java class AndroidAndJSInterface { /** * 该方法将被js调用,用于加载数据 */ @JavascriptInte ...

  5. 1秒30000QPS,前后端设计思路

    Q:现在有这样一个需求,在一秒中有3万的支付订单请求,有什么比较好的解决方案吗? PS:我们数据库用的是oracle 程序是java spring mybatis dubbo mq等技术,现在有这样一 ...

  6. mysql服务器io等待高定位与分析

    这两天发现公司好几台阿里云ECS上的mysql生产服务器繁忙期间io等待高达百分之二三十(估计九成是没有write back),而且确定是mysql进程产生,由于跑的应用过多,开发和维护无法直接确定哪 ...

  7. 总结一下SQL的全局变量

    SQL Server 2008中的全局变量及其用法 T-SQL程序中的变量分为全局变量和局部变量两类,全局变量是由SQL Server系统定义和使用的变量.DBA和用户可以使用全局变量的值,但不能自己 ...

  8. [Architecture Design] 跨平台架构设计

    [Architecture Design] 跨平台架构设计 跨越平台 Productivity Future Vision 2011 在开始谈跨平台架构设计之前,请大家先看看上面这段影片,影片内容是微 ...

  9. VS 2013 Preview 自定义 SharePoint 2013 列表 之 两个Bug

    SharePoint 2013 已RTM了,对于程序员来说又要了解新功能了,同时 VS 2013 也将要 RTM了,两者同时应用定会有不新功能,我们先从 自定义 列表开始. SharePoint 20 ...

  10. 再谈visibility:hidden和display:none

    之前写过一篇有关visibility:hidden和display:none的文章:为什么要用用visibility:hidden;代替display:none;?主要是从浏览器性能方面入手,却没写两 ...