技术标签: java
超时测试即如果单元测试的时间超过某个规定的时间,那该case即被认为执行失败
可以用于性能测试,以确保方法在合理的时间内返回。
代码如下:
import org.testng.annotations.Test;
/**
* @Author xx
* @Date 2020/11/22
**/
public class TestTimeOut {
@Test(timeOut = 5000)
public void testTimeOut() throws InterruptedException{
Thread.sleep(4000);
System.out.println("case正常执行");
}
@Test(timeOut = 3000)
public void testTimeOut1() throws InterruptedException{
Thread.sleep(4000);
System.out.println("case执行超时");
}
}
输出结果如下:
case正常执行
org.testng.internal.thread.ThreadTimeoutException: Method org.testng.internal.TestNGMethod.testTimeOut1() didn't finish within the time-out 3000
at java.lang.Throwable.toString(Throwable.java:481)
at java.lang.Throwable.<init>(Throwable.java:311)
at java.lang.Exception.<init>(Exception.java:102)
at java.lang.RuntimeException.<init>(RuntimeException.java:96)
at org.testng.internal.InvokeMethodRunnable$TestNGRuntimeException.<init>(InvokeMethodRunnable.java:71)
at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:49)
at org.testng.internal.InvokeMethodRunnable.run(InvokeMethodRunnable.java:37)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
===============================================
Default Suite
Total tests run: 2, Failures: 1, Skips: 0
===============================================
Process finished with exit code 0
相关滤波跟踪算法KCF笔记继Mosse算法之后,最经典的相关滤波算法当属J. F. Henriques在2014年发表的High-Speed Tracking with Kernelized Correlation Filters(简称KCF)。KCF算法不仅速度快,而且可以精确的跟踪目标,其实验结果也是碾压了当时大部分的目标跟踪算法。KCF的代码真的是少的可怜,但是其原理却相当复杂,难于理解...
&lt;pre&gt;&lt;?phpheader("Content-Type:text/html;charset=utf-8");/*知识点一:array_diff — 计算数组的差集原形:array array_diff ( array $array1 , array $array2 [, array $... ] )功能:对比返回在 array1 中但是不在 array2 及后...
《创新公司:皮克斯的启示》 【 在创新公司发展壮大之后,敢于说真话的人,就是你要保护的对象。】 你把很棒的主意交给一个一般般的团队,很可能会得到不理想的结果;而你把一个一般般的主意,交给一个很棒的团队,他们就能做出改进,让它变得更好。 本期音频取材于皮克斯动画创始人艾德 · 卡特姆关于皮克斯公司成长经历的分享。艾德 · 卡特姆真正厉害的地方,不仅在于他极具创造力的设计,
公司的项目一直都是使用的ActiveAndroid,这是一个很传统的ORM框架,不过无论是与Gson的配合使用,还是连接查询或者分页查询,传统数据库的理念它都能支持的很好。无奈的是这个项目在GitHub上的最近更新时间还是在两年前,它对AndroidStudio的InstantRun特性支持的不是很好(编译时间就是程序员的生命啊,感谢Google推出的这一神器 )。强行使用的话可能会报如下错误: 第
雅克比矩阵平时经常会遇到,一直没怎么去好好理解。查询了网络大神的解答,自己做一个小小的记录。雅克比矩阵最近遇到的场景是在微积分换元时,看到可以做一些变换。其中求解雅克比矩阵行列式进行换元的方法此前也没有见到过。在向量的微积分中,雅克比矩阵是一个一阶偏导数排列成的矩阵,其行列式是雅克比行列式。在知乎上看到了相关的解答,解释了相关的含义。在一维几何上,由于一维上度量dx可以反映任意自由度为1的变量的全部特征,所述一阶微分不变性。可以想象在一个绳子上前进(一个维度),移动路程实际上只要
做数据处理时,发现解析出来的数据为这种格式[{"name": "XXX", "playUrl": "http://183.215.102.57:8089/180000000000/00000001000000000003000000099922/main.m3u8"}, {"name": "YYY", "playUrl": "http://111.23.232.11:80/180000000002/00000001000000000003000000099922/index.m3u8"}]最
概述这篇文章的简要分析了Activity中的Transaction和add,replace等操作以及backstack的工作原理。分析transaction源码的原因是因为我在写一个测试代码的时候,发现replace并没有将之前所有添加到某个container id上的Fragment全部移除掉,觉得很奇怪。查看官方API对replace的解释Replace an ...
文章目录前言总结前言在使用 go 开多个 goroutine 跑多条数据时 ,在每个 goroutine 使用 http 请求后发现出现 请求超时的频率还是蛮高的,经过在网络上寻找,发现是在 for 循环里面使用 defer 导致的 ,特此记录一下,谨记代码如下(示例):func getChans() { defer waitGroup.Done() purl := "https://xx.xxx.xx/xx/xx" for { if data, ok := <-chanLis.
#include#include#include #include #include #include #include#define max 10using namespace std;int gcd(int a, int b) //广义欧几里得{int k;if (a {k = a;a = b;b
在JavaScript中,可以使用split()将字符串分割成字符串数组;而在python语言中,split()方法也可以将字符串进行分割,分割之后的结果放置在列表中。下面利用几个实例说明split()方法的用法,操作如下:工具/原料pycharmpython截图工具方法/步骤1第一步,双击打开pycharm编辑工具之后,新建python文件split.py,如下图所示:2第二步,定义一个字符串变...
一、前言所谓App Widgets就是微型应用程序的意思,它可以嵌入在其他应用程序(如主屏幕),并能定期更新其View。这些View被当成用户界面的小部件,您可以使用App Widget provider来发布App Widgets。一个能容纳其他的App Widgets的应用程序的组件,我们称之为App Widget host。图1就是一个音乐App Widget的截图。图1
http://diybbs.zol.com.cn/1/34037_629.html