【问题标题】: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 提供更多内存:org.apache.maven.plugins maven-surefire-plugin2.12.4-Xmx2048m

标签: java eclipse testing maven-2 junit4


【解决方案1】:

Maven 有一个构建生命周期,包括以下步骤:

  1. 验证
  2. 编译
  3. 测试
  4. 集成测试
  5. 验证
  6. 安装
  7. 部署

Eclipse 只是编译并运行测试。
我想这可能是原因。

【讨论】:

  • 我还尝试通过“mvn surefire:test”命令运行测试。结果是一样的。
  • 运行 mvn surefire:test 执行以下阶段: - process-resources - compile - process-test-resources - test-compile - test;这就是为什么它比在 Eclipse 中运行要慢的原因。您应该查看此网址了解更多详情:Maven build lifecycle
  • 没有办法跳过之前的所有阶段而只执行一个阶段?
  • 您不能跳过您需要的阶段之前的阶段。那是马文。 HTH)。
  • 错了。 mvn surefire:test 是一个直接的插件调用,而不是生命周期阶段的调用,除了运行测试(只是在本地验证)之外什么都不做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-05
  • 2012-10-16
  • 1970-01-01
  • 2015-08-25
  • 2011-07-10
  • 1970-01-01
  • 2011-07-24
相关资源
最近更新 更多