Gradle在同一台机器上为同一项目并行运行单元测试和集成测试
我试图减少使用gradle运行测试所需的时间。由于有多个项目,我可以考虑的方法之一是将测试分为单元测试和集成测试。对于每个项目,我创建了两个不同的任务:unitTests任务和integrationTests任务 为了简化,假设我们总是在运行测试之前运行Gradle在同一台机器上为同一项目并行运行单元测试和集成测试,gradle,continuous-integration,integration-testing,gradlew,Gradle,Continuous Integration,Integration Testing,Gradlew,我试图减少使用gradle运行测试所需的时间。由于有多个项目,我可以考虑的方法之一是将测试分为单元测试和集成测试。对于每个项目,我创建了两个不同的任务:unitTests任务和integrationTests任务 为了简化,假设我们总是在运行测试之前运行gradlebuild-x测试。在这样一个场景中,我试图说明我可以在哪里并行运行任务unitTests和integrationTests 目前,我看到一个任务开始编译项目时失败,导致另一个任务失败,错误为:“无法读取zip文件”,这可能是因为项目
gradlebuild-x测试。在这样一个场景中,我试图说明我可以在哪里并行运行任务unitTests和integrationTests
目前,我看到一个任务开始编译项目时失败,导致另一个任务失败,错误为:“无法读取zip文件”,这可能是因为项目所依赖的JAR现在正在被另一个进程更新。这似乎是可能的,因为我们将compileJava和compileTestJava作为依赖任务,它们会干扰依赖项目,导致失败
想知道gradle中是否有一种方法可以执行以下操作:
只运行测试,不编译任何东西(按照surefire的风格:在maven中测试)
如果没有,是否可以在build.gradle中指定设置来告诉gradle不要修改文件,而只是运行测试
Gradle还不支持并行运行同一项目的多个任务。但是,在运行测试时,可以在给定的测试任务内运行这些测试
对于可能由于文件在其他事情运行时被更改而导致错误的问题,请确保Gradle了解任务之间的所有依赖关系,因为这将是解决这些问题的最佳方法
至于避免工作,Gradle优化为只执行最低要求,包括任务最新检查、避免编译等。因此,调用test
只会在上次执行后发生更改的情况下编译代码