TestNG方法测试及注意要点 代码及配置详解(解决testng方法不执行问题)

教你解决为什么TestNG中方法加了@Test注解,也在配置文件中配置了,但是方法就是不执行!


在使用TestNG进行测试时,使用配置文件的方式更容易于维护,但是经常遇到明明方法写了也配置执行了,但是run的时候代码就没有执行

看代码:(仔细看注释!)

/**
 *
 * <p>
 * Title: TestngMethods
 * </p>
 *
 * <p>
 * 对应配置文件testng-methods.xml
 * Description: Testng的methods测试及配置,参考testng-methods.xml,如果不设置
 * exclude和include,默认执行当前测试类时,带有返回值的方法不会被执行
 *
 * 如果想执行多个同类型或者命名方式类似的多个方法时,可以使用方法组测试,
 * '.*'表示一个或多个字符,如果方法命名方式不同,那么可以采用组测试方法进行测试,参考TestGroups
 *
 * 注:文档错误!
 *
 * 5.1 - Test methods Test methods are annotated with @Test. Methods annotated
 * with @Test that happen to return a value will be ignored, unless you set
 * allow-return-values to true in your testng.xml:
 *
 * <suite allow-return-values="true">
 *
 * or
 *
 * <test allow-return-values="true">
 *
 * 此处在<test >中配置allow-return-values属性无效,测试依旧不会被执行
 * </p>
 *
 * <p>
 * Company:
 * </p>
 *
 * @author : Dragon
 *
 * @date : 2014年10月11日
 */
public class TestngMethods {
	/**
	 * 默认情况下这个方法将被忽略,如果需要执行,需要在xml中配置allow-return-values="true"
	 * 
	 * @return
	 */
	@Test
	public String getName() {
		System.err.println("return name.... getName()");
		return "name";
	}

	@Test
	public void funtest() {
		System.err.println("this is funtest......");
	}

	@Test
	public void saveMethod1() {
		System.err.println("this is saveMethod1......");
	}

	@Test
	public void saveMethod2() {
		System.err.println("this is saveMethod2......");
	}

	@Test
	public void saveMethod3() {
		System.err.println("this is saveMethod3......");
	}

}

配置文件:testng-methods.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- allow-return-values 默认值为FALSE,表示返回值将被忽略 -->
<suite name="framework_testng" allow-return-values="true">
	<test verbose="2" name="TestMethods">
		<classes>
			<class name="com.dragon.testng.annotation.TestngMethods">
				<methods>
					<exclude name="funtest"></exclude>
					<include name="getName"></include>
					<include name="save.*"></include>
				</methods>
			</class>
		</classes>
	</test>
</suite>

运行结果:

return name.... getName()
this is saveMethod1......
this is saveMethod2......
this is saveMethod3......
PASSED: getName
PASSED: saveMethod1
PASSED: saveMethod2
PASSED: saveMethod3

===============================================
    TestMethods
    Tests run: 4, Failures: 0, Skips: 0
===============================================

Testng 的数据源 驱动测试 代码与配置


如果我忍让,
别认为我退缩。因为我明白,忍一忍风平浪静,让一让天高海阔。

时间: 2024-08-03 20:09:53

TestNG方法测试及注意要点 代码及配置详解(解决testng方法不执行问题)的相关文章

Tomcat 多站点配置详解及实现方法_Tomcat

Tomcat 多站点配置 今天心血来潮试了一下Tomcat的多站点配置,都是通过修改server.xml完成,其他方式不做介绍 第一种: 这种是最常见的,在网上一搜就可以搜到的,在这里还是拿出来说一下,方便做个比较,直接贴代码 <Host name="localhost" appBase="www" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn

几种防御PHP程序被木马攻击配置详解方法

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-

android app进行代码混淆实例详解

  android app进行代码混淆实例详解         接到一个新的任务,对现有项目进行代码混淆.之前对混淆有过一些了解,但是不够详细和完整,知道有些东西混淆起来还是比较棘手的.不过幸好目前的项目不是太复杂(针对混淆这块来说),提前完成--现总结之. 第一部分 介绍下操作流程(eclipse): 1.打开混淆器:找到项目根目录下的project.properties文件,将"#proguard.config=${sdk.dir}/tools/proguard/proguard-andro

深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)

深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇) 上篇文章<深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)>我们通过对mybatis源码的简单分析,可看出,在mybatis配置文件中,在configuration根节点下面,可配置properties.typeAliases.plugins.objectFactory.objectWrapperFactory.settings.environments

深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)

深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇) 上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, 本篇继续讲剩下的配置节点之一:typeAliases. typeAliases节点主要用来设置别名,其实这是挺好用的一个功能, 通过配置别名,我们不用再指定完整的包名,并且还能取别名. 例如: 我们在使用 co

Centos6.5搭建java开发环境配置详解_Linux

一.安装jdk 1.查看Linux自带的JDK是否已安装 java –version 如果出现openjdk,最好还是先卸载掉openjdk,在安装sun公司的jdk. 2.查看jdk信息 rpm -qa|grep java 3.卸载OpenJDK,执行以下操作: rpm -e --nodeps tzdata-java-2012c-1.el6.noarch rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-1.45.1.11.1.el6.x86_64 4.新

MongoDB安全配置详解

  这篇文章主要介绍了MongoDB安全配置详解,本文来自国内安全厂商乌云平台,讲解的还是比较全面的,需要的朋友可以参考下 0x00 MongoDB权限介绍 1.MongoDB安装时不添加任何参数,默认是没有权限验证的,登录的用户可以对数据库任意操作而且可以远程访问数据库,需以--auth参数启动. 2.在刚安装完毕的时候MongoDB都默认有一个admin数据库,此时admin数据库是空的,没有记录权限相关的信息.当admin.system.users一个用户都没有时,即使mongod启动时添

log4j日志配置详解

文章出处为 http://george5814.github.io/2016/10/09/log4j-config.html 一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.W

IOS中Json解析实例方法详解(四种方法)_IOS

作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此"http://www.bejson.com/"网站来进行JSON格式化校验(点击打开链接).此网站不仅可以检测Json代码中的错误,而且可以以视图形式显示json中的数据内容,很是方便. 从IOS5开始,APPLE提供了对json的原生支持(NSJSONSerialization),但是为了兼容以前的iOS版本,可以使用第三方库来解析Json. 本文将介绍Tou