Maven - 在Windows 7结束前测试卡住

时间:2015-12-11 10:47:18

标签: java maven jenkins

在Win7上构建项目需要花费大量时间,尤其是离开测试套件。在我的Windows机器上进行172次测试需要230秒,在Jenkins(Ubuntu)上需要大约19秒。

我使用-X参数运行maven以查看它挂起的内容,但没有出现错误,在此之后它只是运行下一个插件。

我尝试通过将surefire插件设置为在4个线程上运行来加速它,但事实并非如此 - Jenkins与我的项目完全相同。

我发现有时它会挂起来调用externall进程,但项目并不会调用任何外部进程(根据在两个不同的操作系统上运行它会更加容易)。

当我在Win7中逐个运行测试时,工作时间肯定会低于整个重建时的运行时间。其他Win7计算机上的行为相同。

我怎样才能弄清楚是什么让maven不能离开测试并进入下一步呢?

Windows 7输出

Last test output
<--- stucks here
Tests run: 172, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 230.682 sec - in TestSuite
Results :
Tests run: 172, Failures: 0, Errors: 0, Skipped: 0
Next plugin run

Ubuntu输出

Last test output    
Tests run: 172, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 18.954 sec - in TestSuite
Results :
Tests run: 172, Failures: 0, Errors: 0, Skipped: 0
Next plugin run

2 个答案:

答案 0 :(得分:1)

将surefire插件版本设置为最新版2.19,从2.16开始帮助。现在在Windows 7上大约需要12秒,但我仍然不知道卡住的原因是什么。

答案 1 :(得分:1)

为了了解您的操作系统中发生的情况,您必须以某种方式调试您的操作系统。我建议看看Microsoft Sysinternals并尝试使用Procmon(进程监视器),看看发生了什么。
可悲的是,它不会像Linux上的strace那样得到你所有的系统调用,但它可能会帮助你更多地了解正在发生的事情。

你也可以debug your JVM that executes the tests,它也可以给你一些答案。