有时由于种族或僵局,我的Maven surefire测试被挂起。

发生这种情况时,我必须找到正在使用的从属服务器,然后我必须登录该从属服务器,将sudo登录到jenkins帐户并执行jstack或kill -3

我正在寻找一个简单的解决方案,例如当有人按下詹金斯上的中止按钮时,执行jstack / kill -3。

有人可以建议我如何使它自动化或更好的处理方法吗?

最佳答案

maven email group中对此进行了详细讨论。最后,我接受了以下建议,并通过@Rule在所有测试类中添加了超时


嗨,您可以创建一个像这样的简单侦听器:
https://github.com/apache/bookkeeper/blob/master/bookkeeper-common/src/test/java/org/apache/bookkeeper/common/testing/util/TimedOutTestsListener.java

检查pom.xml文件中有关如何启用它的信息:
https://github.com/apache/bookkeeper/blob/2f996dcf0159f945f7ec97ce7402e5d293009444/bookkeeper-server/pom.xml#L212

希望能有所帮助

恩里科

10-07 20:36