手动抛出异常_TestNG和SpringBoot2.1.6整合后,导致TestNG的断言异常无法抛出,是为什么?...
最近在做自动化测试项目。项目用到了TestNG、SpringBoot等框架。
在无意中发现,在@Test(description = "case1", timeOut = 180000)注解后,TestNG的Assert断言异常无法抛出。
先来看一下代码:
package com.woodpecker.testcase.demo;
import com.woodpecker.WoodpeckerApplication;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.testng.Assert;
import org.testng.annotations.Test;/** * 类描述:〈〉 * * @author: jinjianxu * @since: 1.0 */
@SpringBootTest(classes = {WoodpeckerApplication.class})
public class D extends AbstractTestNGSpringContextTests {
@Test(description = "case1", timeOut = 180000)
public void test() {
System.out.println("begin");
Assert.assertEquals("1", "2", "断言1和2相等");
System.out.println("end");
}
}
我在用例上加了timeOut = 180000,用于控制用例执行最大时间,防止case长时间卡住。咋们来运行一下这个代码,截图如下:
什么情况?断言失败的异常呢?
不懂了。
接下去我把用例的timeOut = 180000去掉,代码如下:
package com.woodpecker.testcase.demo;
import com.woodpecker.WoodpeckerApplication;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.testng.Assert;
import org.testng.annotations.Test;/** * 类描述:〈〉 * * @author: jinjianxu * @since: 1.0 */
@SpringBootTest(classes = {WoodpeckerApplication.class})
public class D extends AbstractTestNGSpringContextTests {
// @Test(description = "case1", timeOut = 180000)
@Test(description = "case1")
public void test() {
System.out.println("begin");
Assert.assertEquals("1", "2", "断言1和2相等");
System.out.println("end");
}
}
我把timeOut注释掉了。
运行一下,结果如下:
咦,断言失败异常抛出来了。
什么鬼!
莫非是SpringBoot或者TestNG的 BUG?
求各位大神指导一下,万分感谢!
进一步发现,不管是任何异常,都不会被抛出。
代码如下:
运行代码,结果如下:
你看,我手动抛出
throw new RuntimeException("断言1和2相等");
都没异常抛出来,被捕获掉了。
一切的问题,都在于 @Test(description = "case1", timeOut = 180000) 这个代码,设置了 timeOut 就会出现这个问题,去掉 timeOut 就没问题。可以正常抛出异常。
但是我用例,需要设置超时时间。
手动抛出异常_TestNG和SpringBoot2.1.6整合后,导致TestNG的断言异常无法抛出,是为什么?...相关推荐
- java 在方法中抛出异常_Java异常的抛出
在Java中,当定义的方法可能产生异常时,程序员必须抛出可能的异常. 抛出异常的两种方式,一是在方法内部用throw语句,二是在方法定义时用throws关键字 1.throw语句 在Java中,thr ...
- java声明异常必须抛出吗_简述java中抛出异常的两种方式
java编程中经常遇到异常,这时就需要利用java中的异常抛出机制,在java中提供了两种抛出异常的方法:try{} catch() {}和throw. 一.抛出异常的两种方式 (1) 首先我们来看 ...
- java 异常何时抛出_何时适合抛出异常?
例外点是沟通 exceptional 情况 . 从这个意义上讲:如果你的例子中所有条件都是假的绝对意外,并且没有有效的返回值来表明这种情况,那么抛出RuntimeException是合理的做法;但我可 ...
- java 手动抛异常_Java 异常处理 之 手动抛出异常
一.手动抛出异常 throw 在编写程序时,我们必须要考虑程序出现问题的情况.比如,在定义方法时,方法需要接受参数.那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不合法 ...
- 应该手动抛出什么异常?RuntimeException?
Java程序员应该手动抛出什么异常?不能抛出RuntimeException吧? 收藏帖子 回复 秦三行 结帖率 96.88% if(sectionCodeT!=null && !&q ...
- 【C++ 语言】异常 ( 抛出字符串异常 | 抛出异常对象 | 抛出任意对象 | 抛出自定义异常 )
文章目录 I 异常处理 II 字符串异常 III 异常对象 IV 抛出任意类型对象 V 自定义异常 VI 异常相关代码 I 异常处理 1. 异常处理 : 使用 " try{}catch(){ ...
- python中用来抛出异常的关键字是( )_python异常抛出
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 主动抛出异常raise typeerror(类型错误) # 7. 触发异常try ...
- 【C++ 语言】异常 ( 抛出字符串异常 | 抛出异常对象 | 抛出任意对象 | 抛出自定义异常 )
转载自:https://blog.csdn.net/shulianghan/article/details/100002073 文章目录 I 异常处理 II 字符串异常 III 异常对象 IV 抛出任 ...
- python用raise手动抛出异常
python用raise手动抛出异常 文章目录: raise: 就是手动抛出异常 格式: 格式:raise [exceptionType[,argument][,traceback]] 举例子1: d ...
- 手动抛出异常_Java异常处理最佳实践及陷阱防范
前言 不管在我们的工作还是生活中,总会出现各种"错误",各种突发的"异常".无论我们做了多少准备,多少测试,这些异常总会在某个时间点出现,如果处理不当或是不及时 ...
最新文章
- ArcMap导出属性表为Excel文件
- Django redis的使用
- mysql通过集合查询_MySQL使用集合函数进行查询操作实例详解
- 扫地机器人单扫和双扫_小米扫拖机器人体验:再见了,拖把君
- java for index_Java IBarDataSet.getEntryForIndex方法代码示例
- DeFi智能投顾Rari Capital协议已产生超165000美元费用
- 能运行lsdyna的服务器,ansys ls-dyna运行出错 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...
- 51单片机汇编语言实验及代码
- incaseformat病毒专杀:怎么查杀incaseformat病毒?紧急扩散!
- 运放的转换速率(压摆率)SR的意义和如何选取
- CyanogenMod 7
- Java学习笔记001_概述及环境搭载
- 关于读书的名人名言,让你体会读书的好处有哪些
- 代码报错 Uncaught TypeError: Converting circular structure to JSON
- Celery 全面学习笔记
- 天平应什么放置_天平的使用规程
- 高性能零售IT系统的建设06-当应对大量HTTP请求时兼顾性能、处理速度的架构设计
- 【新闻推荐系统】(task2)mysql和pymysql使用
- GD25Q127C编程器写不进去的原因
- 异步爬虫“该文章已下线” 、“mrd参数”解决方法