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 提供更多内存:org.apache.maven.plugins maven-surefire-plugin2.12.4-Xmx2048m 【参考方案1】:

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中

Maven 依赖于 Spring Boot 和 Junit

Eclipse开发Maven项目提示:程序包org.junit不存在解决方案

从Eclipse中的Maven项目调试Junit测试