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

简介: 教你解决为什么TestNG中方法加了@Test注解,也在配置文件中配置了,但是方法就是不执行! 在使用TestNG进行测试时,使用配置文件的方式更容易于维护,但是经常遇到明明方法写了也配置执行了,但是run的时候代码就没有执行 看代码:(仔细看注释!) /** * * <p> * Title: TestngMethods * </p> *

教你解决为什么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 的数据源 驱动测试 代码与配置



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

目录
相关文章
|
30天前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
24 1
|
1月前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用 ——测试(EmpDaoImplTest)
使用JDBCTemplate实现与Spring结合,方法公用 ——测试(EmpDaoImplTest)
8 0
|
2天前
|
分布式计算 Hadoop Scala
Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
【4月更文挑战第13天】Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
5 0
|
15天前
|
自然语言处理 测试技术 持续交付
现代软件测试方法与挑战
传统软件测试方法在当前快速发展的软件开发环境下面临着诸多挑战,因此,现代软件测试方法的探索与应用显得尤为重要。本文将介绍几种现代软件测试方法,并探讨其在应对软件开发挑战方面的作用。
10 0
|
15天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出&quot;验证成功&quot;,否则输出&quot;验证失败&quot;。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
17天前
|
安全 测试技术
深入理解白盒测试:方法、工具与实践
【4月更文挑战第7天】 在软件开发的质量控制过程中,白盒测试是确保代码逻辑正确性的关键步骤。不同于黑盒测试关注于功能和系统的外部行为,白盒测试深入到程序内部,检验程序结构和内部逻辑的正确性。本文将探讨白盒测试的核心技术,包括控制流测试、数据流测试以及静态分析等方法,同时介绍当前流行的白盒测试工具,并讨论如何在实际项目中有效实施白盒测试。文章的目标是为软件测试工程师提供一份综合性指南,帮助他们更好地理解和应用白盒测试技术。
|
29天前
|
传感器 监控 算法
【软件设计师备考 专题 】模块测试的方法和实践
【软件设计师备考 专题 】模块测试的方法和实践
72 0
|
29天前
|
安全 测试技术
【软件设计师备考 专题 】软件测试的原则与方法:确保软件质量的关键步骤
【软件设计师备考 专题 】软件测试的原则与方法:确保软件质量的关键步骤
41 0
|
1月前
|
Java
java面向对象高级分层实例_测试类(main方法所在的类)
java面向对象高级分层实例_测试类(main方法所在的类)
10 1
|
1月前
|
测试技术 数据库 Python
python测试代码(二)
python测试代码(二)
19 0