在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
答案 0 :(得分:1)
将surefire插件版本设置为最新版2.19,从2.16开始帮助。现在在Windows 7上大约需要12秒,但我仍然不知道卡住的原因是什么。
答案 1 :(得分:1)
为了了解您的操作系统中发生的情况,您必须以某种方式调试您的操作系统。我建议看看Microsoft Sysinternals并尝试使用Procmon(进程监视器),看看发生了什么。
可悲的是,它不会像Linux上的strace
那样得到你所有的系统调用,但它可能会帮助你更多地了解正在发生的事情。
你也可以debug your JVM that executes the tests,它也可以给你一些答案。