Java junit测试在600秒后跳过
我正在进行物联网设备的系统测试,该设备具有各种Web服务 我们有两种类型,一种是慢闪存,另一种是快闪存。在新闪存中,fw更新可以使用aprox完成。4分钟,而慢的大约需要12分钟 问题出现在junit测试中,该测试测试更新并返回到“先前”版本。将文件和更新信号发送到设备后,我使用Thread.sleep(6*60*1000)等待设备展开文件、更新并重新启动 junit测试在通过600秒后“跳过”测试,不是失败,不是错误,只是跳到下一个测试类 测试代码的一小部分,尽管它基本上是正确的:Java junit测试在600秒后跳过,java,web-services,junit,embedded,Java,Web Services,Junit,Embedded,我正在进行物联网设备的系统测试,该设备具有各种Web服务 我们有两种类型,一种是慢闪存,另一种是快闪存。在新闪存中,fw更新可以使用aprox完成。4分钟,而慢的大约需要12分钟 问题出现在junit测试中,该测试测试更新并返回到“先前”版本。将文件和更新信号发送到设备后,我使用Thread.sleep(6*60*1000)等待设备展开文件、更新并重新启动 junit测试在通过600秒后“跳过”测试,不是失败,不是错误,只是跳到下一个测试类 测试代码的一小部分,尽管它基本上是正确的: pub
public RequestCase(String path, WebServiceRequest req, WebServiceResponse resExp, String tcDesc, boolean validateResXSD) {
//super();
this.setPath(path);
this.setReq(req);
this.setResExp(resExp);
this.res = new WebServiceResponse();
this.setTcDesc(tcDesc);
this.setValidateResXSD(validateResXSD);
}
和测试片段:
// now apply Software
String s06Req = null;
try {
s06Req = WebServiceRequestS06.makeCommandPsu(updFile.getRevision(), WebServiceRequestS06.SW_UPD);
} catch (WebServiceXMLException e) {
fail("Error creating S06 XML request. Error is: "+e.getMessage()+"\nAnd cause is :"+e.getCause());
}
RequestCase s06CommandPsu = new RequestCase(
null,
new WebServiceRequest("commandPsu", "POST", s06Req),
WebServiceResponse.RESULT_STATUS_CMD_SW_RECEIVED,
"Apply valid SW, and it is only received, but not apply now (imply Y03)",
true
);
executeCase(s06CommandPsu, WebServicesXSDValidator.S06_CommandPsu);
// Wait some time to wait charger apply new SW and reboot
try {
if (this.charger.getProductType() == Charger.ID_CT1_OLD_FLASH) {
Thread.sleep(6*60*1000);
} else {
Thread.sleep(2*60*1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
谁能帮我一点忙吗?提前谢谢 hre提供的测试代码段未显示任何断言/验证操作 你有一个测试,在那里等待600秒。然后就结束了。 测试将显示为通过(因为它没有导致失败或错误) 因此:
最后,我找到了导致这个问题的原因,我将发布它,以防有人在同一个问题上跺脚
这是由并行化类引起的,更具体地说是在ExecutorService awaitTermination()方法中,您可以在该方法中设置超时 请阅读并相应地强化您的问题。当你仅仅描述代码时,我们无法帮助代码不起作用……感谢你花时间@GhostCat,我没有包括它,因为它非常合适,但我会尝试包括更多,所以它更容易理解,这就是“最小”的含义。您不必提供产品代码。这只是一个说明问题的例子!我包括了一张eclipse在600秒后达到的状态的图片,测试包计数为已完成,并进入下一个包。很抱歉问题的格式不好。再次感谢您的时间,延迟后还有一些操作要做,但即使我在延迟后放置断点,它也永远不会到达,因为测试跳过,我甚至尝试将延迟分割为60秒并打印一些内容,但它无法完成整个过程delay@armengedon根据你的意见,这就是我在这里能做的一切。再说一遍:这就是为什么我要你给我一个电话。你想给我们一个完整的例子来说明你的问题。