为什么JUnit需要这么长时间才能从Eclipse启动?

时间:2017-05-22 16:21:19

标签: java eclipse unit-testing junit

当我在Eclipse中运行JUnit测试用例时,只需启动JUnit本身需要20秒。

在进度视图中,大部分时间是87%,说明: 启动:启动虚拟机......

我已经尝试在eclipse.ini中以及在单元测试的运行配置(VM参数:-Xms512m -Xmx1024m)中增加对vm的内存分配,但两者都没有区别。

当我启动单元测试时,我正在观看Windows任务管理器,并且我看到只有140K内存创建了一个新的java进程,它就像JUnit最终启动时一样跳到大约20,000K。

因此,如果我能看到新的java进程从我配置的内存量开始,我至少可以排除JVM内存作为缓慢启动的原因。但我有点卡住了。我在某个地方看到了一个建议使用它,但它也没有用:-Djava.net.preferIPv4Stack = true

这是我的eclipse.ini

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20150204-1316
-product
org.eclipse.epp.package.php.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
C:/Program Files/Java/jdk1.7.0_79/bin/javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms512m
-Xmx1024m
-Djava.net.preferIPv4Stack=true

1 个答案:

答案 0 :(得分:0)

我知道这是一个迟来的答案。但这可以帮助其他人。

通常是因为项目遇到了非增量项目性质之一,例如maven(尤其是非增量maven编译阶段插件)和/或WTP自动发布等。在控制台视图中,您可以显示Maven控制台,这可能揭示它在做什么。在构建过程中与远程subclipse / subversion或git相关的任何事情肯定也会花费一些时间。

如果已自动构建,则无需在junit start上构建。 在junit启动时关闭所有构建,但是请确保当然构建了prj(如果不是自动构建的,则通过“ build project”或“ build all”)。

此外,如果您有一个包含大量荒谬或依赖项jar的项目,并且正在使用占位符jar使命令行更短,则可能是此tmp jar的产生使您减速,但我对此表示怀疑需要20秒。

如果您可以在本地接受绕过类字节码验证,则可以在jvmargs中尝试“ -noverify”。