testNG(一)常用注解和测试场景
testng.xml配置 https://www.cnblogs.com/wangyinghao/p/10133109.html
官网文档 https://testng.org/doc/documentation-main.html
常用注解
suite
@BeforeSuite,在该套件的所有测试都运行在注释的方法之前,仅运行一次。
@AfterSuite,在该套件的所有测试都运行在注释方法之后,仅运行一次。
一个测试套件里可以有多个测试用例 @test,可以测试包package,测试组group,测试类class,测试单个方法
class
@BeforeClass,在调用当前类的第一个测试方法之前运行,注释方法仅运行一次。
@AfterClass,在调用当前类的第一个测试方法之后运行,注释方法仅运行一次
test
@Test,标记一个测试方法
@BeforeTest,注释的方法将在属于<test>标签内的类的所有测试方法运行之前运行。
@AfterTest,注释的方法将在属于<test>标签内的类的所有测试方法运行之后运行。
method
@BeforeMethod,注释方法将在每个测试方法之前运行。
@AfterMethod,注释方法将在每个测试方法之后运行。
@DataProvider
标记一种方法来提供测试方法的数据。 注释方法必须返回一个Object [] [],其中每个Object []可以被分配给测试方法的参数列表。 要从该DataProvider接收数据的@Test方法需要使用与此注释名称相等的dataProvider名称。
其他场景测试
1. testNG异常测试
测试中,有时候我们期望某些代码抛出异常。比如用例中的异常流和无效等价类,抛出的异常只能是Java中的Exception类中的异常类,超出Exception类中的异常,不会报错,如
由于在处理字符串转换成整型的时候会抛NumberFormatException异常,此时加了异常测试处理,testNG认为测试通过
expectedExceptions属性可以加多个异常,expectedExceptions = { IOException.class, NullPointerException.class }
2.TestNG忽略测试
有时候测试用例还没准备好, 可以给测试用例加上@Test(enable = false),来禁用此测试用例
3.TestNG依赖测试
使用dependOnMethods来实现依赖测试。 如果依赖方法失败,则将跳过所有后续测试方法。
@Test(dependsOnMethods = { "method1" })
4.TestNG超时测试
@Test(timeout=数字),单位为ms,超过这个时间就会认为测试没有通过
TestNG测试结果报告
IDAE默认关闭测试报告功能
开启:Run-->edit configurations-->configuration-->listeners-->勾选use default reporters
文件位置:测试报告位于 "test-output" 目录下index.html。每次测试后,结果都会更新,所以每次测试后就必须去文件记录结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具