【问题标题】:Gradle run unit and integration tests in parallel for same project on same machineGradle 在同一台机器上为同一项目并行运行单元和集成测试
【发布时间】:2019-05-16 20:10:27
【问题描述】:

我正在尝试减少使用 gradle 运行测试所需的时间。由于有多个项目,我能想到的一种方法是将测试拆分为单元测试和集成测试。对于每个项目,我创建了两个不同的任务:unitTests 任务和 integrationTests 任务。

为简化起见,假设我们总是在运行测试之前运行gradle build -x test。在这种情况下,我试图说明我可以在哪里并行运行任务 unitTests 和 integrationTests。

目前,我看到其中一个任务开始编译项目导致另一个任务失败并出现错误:“无法读取 zip 文件”,这可能是因为项目所依赖的 JAR 现在正在由其他过程。这似乎很可能是因为我们将 compileJava 和 compileTestJava 作为依赖任务,它们会干扰依赖项目导致失败。

想知道 gradle 中是否有办法执行以下操作:

  1. 只运行测试而不编译任何东西(在 maven 中使用 surefire:test)。
  2. 如果没有,是否可以在 build.gradle 中指定设置来告诉 gradle 不要修改文件而只是运行测试。

【问题讨论】:

    标签: gradle continuous-integration integration-testing gradlew


    【解决方案1】:

    Gradle(尚)不支持并行运行同一项目的多个任务。但是,在运行测试时,可以在给定的测试任务中运行in parallel

    对于您在运行其他程序时可能由于文件更改而出现错误的问题,请确保 Gradle 了解任务之间的所有依赖关系,因为这将是解决这些问题的最佳方法。

    至于工作避免,Gradle 被优化为只执行最低要求,包括任务更新检查、编译避免等等。所以调用test 只会在自上次执行后发生更改时编译代码。

    【讨论】:

      猜你喜欢
      • 2020-08-28
      • 1970-01-01
      • 2012-09-23
      • 1970-01-01
      • 2015-04-18
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多