Timeout for tests

本文介绍了如何使用JUnit框架中的Timeout特性来自动标记那些运行时间过长的测试用例为失败状态。提供了两种方法:一种是在@Test注解中直接设置超时时间;另一种是通过定义规则(Rule)的方式为整个测试类设定统一的超时阈值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果想把timeout太久的测试自动标记为失败,有两种方法:

1.在 @Test里加上 Timeout 参数

定义"timeout=1000“的话,如果超过1000 毫秒,failure会被一个抛出的异常触发。

import static org.junit.Assert.*;
import org.junit.Test;

public class TimeoutTest {

	@Test(timeout=1000)
	public void test(){
		assertTrue("it should be true",true);
	}
}

2.定义Timeout 规则(应用于整个测试类)

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.Timeout;

public class Timeout2 {
	public static String log;
	
	@Rule
	public Timeout globalTimeout=new Timeout(10000);
	
	@Test
	public void test01(){
		log +="ran1";
		for(;;){}
	}
	
	@Test
	public void test02(){
		log+="ran2";
		for(;;){}
	}
}


*** Settings *** Documentation Perform undocking and docking test Library Process Library BuiltIn Library OperatingSystem Resource common/core_automation.resource Library common.PrepareDutForRun Resource common/permanent_run.resource Resource monitor.robot Resource robot_helper/network.robot Resource battery.robot Suite Setup Current Suite Setup Suite Teardown Current Suite Teardown Test Teardown Teardown Testcase Test Setup Init Testcase *** Keywords *** Init Testcase Send Command To Robot command_restart_robot_service Wait Until Keyword Succeeds 5 sec 1 sec Check Systemd Service Readiness robot BuiltIn.Sleep 10 sec Teardown Testcase Run Keyword If Timeout Occurred Set Timeout Variable *** Test Cases *** Perform Fast Basic Cleaning Cycle [Documentation] Perform basic run consisting of undocking and docking. ... The cleaning run will be paused and canceled after 20 sec. Log Mode = %{CLEANINGMODE} console=yes ${error} = command_to_rpc_thin_client start Wait Until Keyword Succeeds 20 sec 2 sec Robot Undocking BuiltIn.Sleep 10 sec ${error} = command_to_rpc_thin_client pause BuiltIn.Sleep 5 sec ${error} = command_to_rpc_thin_client return Wait Until Keyword Succeeds 2 min 5 sec At Base Check *** Keywords *** Current Suite Setup Log Starting Suite Setup console=yes Set Suite Variable ${TIMEOUT_OCCURED} False Set Suite Variable ${DOCKING_CORRECT} True ICMP Ping %{DUTIP} ${5} # Keep "Check Size..." and "Prepare DUT" active for navigation tests! Otherwise results are skewed and incomplete! If needed, please create new test, or If-Else Switch. # "Check Size..." reduces filesize, otherwise we could hit a soft limit with blackbox file size # "Prepare DUT" also gathers information of the robot: What software is running, is this correct with database, is it in Error State, can the robot even start a cleaning run and is battery threshold reached? Check Size From Journal And Remove If Greater Than Threshold Prepare DUT Prepare Thin RPC Tools Set Timeout Variable Set Suite Variable ${TIMEOUT_OCCURED} True Current Suite Teardown Log Suite Teardown console=yes Log Timeout occured: ${TIMEOUT_OCCURED} console=yes IF ${TIMEOUT_OCCURED} == False Wait For Being Carried Home END Download Logfiles ${sequence} = Get Serialized Sequence %{DUTIP} Log ${sequence} ${event_counts} = Get Serialized Event Counts %{DUTIP} Log ${event_counts} ${emmc_data} = Get Emmc Health Log ${emmc_data} Write Emmc Data To Tsdb %{DUTIP} %{FIRMWAREVERSION} Log ${DOCKING_CORRECT} Write Automation Run Stats %{DUTIP} ${DOCKING_CORRECT} %{TEST_UUID}
04-03
内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值