【问题标题】:Unit test performance gap between IDE and mavenIDE 和 maven 之间的单元测试性能差距
【发布时间】:2017-11-08 10:02:25
【问题描述】:

在eclipse中工作,我有一个包含221个单元测试类的项目, 其中方法用 @Test (org.junit.Test) 注释。

当我右键单击项目并单击“Run As -> JUnit Test”时,它会在 3-5 秒内完成。

当通过 maven 命令(“mvn test”)运行相同的测试时,大约需要 50 秒。

考虑到我有大约 50 个这样的项目,这使得整个系统的测试运行需要很长时间。

我想运行所有单元测试并且只运行测试(考虑到所有内容都已经编译和构建)。 有人知道对 maven 命令的可能优化吗?

【问题讨论】:

  • 一个。您可以尝试增加分配给 maven 的内存用于 test.bodez.wordpress.com/resources/maven-tips-tricks/… 。湾。确定在服务器上花费的时间是否较高,在这种情况下,尝试在服务器负载较低时执行测试。
  • @akshayapandey :除非操作系统进行交换,否则我认为增加内存不会带来任何性能优势。增加内存是必要的,因为测试本身需要更大的堆,默认情况下提供了 10。
  • 他特别要求对maven命令进行可能的优化,因此指出了这一点。
  • “我想运行所有单元测试,并且只运行测试(考虑到所有内容都已经编译和构建)。有人知道对 maven 命令的可能优化吗?” -是的,继续使用提供这个有用功能的 IDE:/ Maven 永远不会很快,它被设计为不经常使用来在开发管道结束时进行批量打包工作。
  • 具体时间花在了哪里?

标签: java eclipse maven unit-testing junit


【解决方案1】:

无需优化。

如果您查看 Maven 输出,它的作用不仅仅是运行您的测试。它正在执行 Maven 生命周期中“测试”之前的所有步骤:编译、打包等。

我假设您在持续集成管道中使用 Maven。 50 秒不是交易破坏者。您的开发人员很快就会知道他们应该在 IDE 中运行测试,提交他们的工作代码,然后让管道使用 Maven 为环境准备代码。

我知道时间增加 10 倍是令人震惊的,但从更大的角度来看,这并不值得担心。您需要解决开发周期中更大的低效率问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-08
    • 2023-03-18
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    相关资源
    最近更新 更多