JUnit:通过 eclipse 和 maven 测试运行。速度差别很大,为啥?
Posted
技术标签:
【中文标题】JUnit:通过 eclipse 和 maven 测试运行。速度差别很大,为啥?【英文标题】:JUnit: Run via eclipse and maven test. Big difference in the speed, why?JUnit:通过 eclipse 和 maven 测试运行。速度差别很大,为什么? 【发布时间】:2012-12-12 03:21:44 【问题描述】:我有一个 JUnit 类,这个类包含几个测试方法。
我正在尝试通过 Eclipse IDE
菜单 Run As -> Junit Test 运行这个测试类。
执行速度:
1 次。 30 秒
2 次:29 秒
3 次:23 秒
在此之后,我尝试在终端中通过maven run
执行测试类。
在这种情况下执行速度:
1 次:1 分钟。 10 秒。
2 次:59 秒
3 次:56 秒
所以,如您所见,这两种情况之间存在很大差异。但是我们如何解释这种巨大的差异呢?
附:我正在使用最新版本的 Eclipse IDE 和 maven。
【问题讨论】:
再次运行 maven 并让我们知道输出。可能是第一次下载某些 jar 文件,并且该时间已被考虑在内。 @mtk,我整天都在试验这个,我想,所有的 jar 都被下载了。 你有多确定论点是一样的? eclipse 测试运行器是否配置了更多内存? @radai,我不确定。你知道我该如何检查这个吗? 我不知道如何检查 eclipse 正在做什么,但你可以使用这个 maven 插件配置为 surefire jvm 提供更多内存:Maven 有一个构建生命周期,包括以下步骤:
-
验证
编译
测试
包
集成测试
验证
安装
部署
Eclipse 只是编译并运行测试。 我想这可能是原因。
【讨论】:
我还尝试通过“mvn surefire:test”命令运行测试。结果是一样的。 运行 mvn surefire:test 执行以下阶段: - process-resources - compile - process-test-resources - test-compile - test;这就是为什么它比在 Eclipse 中运行要慢的原因。您应该查看此网址了解更多详情:Maven build lifecycle 没有办法跳过之前的所有阶段而只执行一个阶段? 您不能跳过您需要的阶段之前的阶段。那是马文。 HTH)。 错了。 mvn surefire:test 是一个直接的插件调用,而不是生命周期阶段的调用,除了运行测试(只是在本地验证)之外什么都不做。以上是关于JUnit:通过 eclipse 和 maven 测试运行。速度差别很大,为啥?的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse/Maven:运行 JUnit 测试时未编译它们
Eclipse / Maven:JUnit测试在运行时未编译
Eclipse 2018-09与jdk11声称包org.junit缺失,即使它包含在maven中