diff --git a/plugins/gradle/java/testSources/execution/test/events/GradleTestExecutionTest.kt b/plugins/gradle/java/testSources/execution/test/events/GradleTestExecutionTest.kt index 9dbb700bc37c..2cdcf62c908e 100644 --- a/plugins/gradle/java/testSources/execution/test/events/GradleTestExecutionTest.kt +++ b/plugins/gradle/java/testSources/execution/test/events/GradleTestExecutionTest.kt @@ -713,4 +713,33 @@ class GradleTestExecutionTest : GradleExecutionTestCase() { } } } + + @ParameterizedTest + @AllGradleVersionsSource + fun `test maxParallelFork option is not reset for test executions`(gradleVersion: GradleVersion) { + testJavaProject(gradleVersion) { + // we need the presence of some test sources + writeText("src/test/java/org/example/TestCase.java", """ + |package org.example; + |import $jUnitTestAnnotationClass; + |public class TestCase { + | @Test public void test1() {} + |} + """.trimMargin()) + // configure parallel forks value + val parallelForks = 5 + // output max parallel forks value after test execution + appendText("build.gradle", """ + |test { + | maxParallelForks = $parallelForks + | doLast { Test t -> + | logger.lifecycle("The max parallel fork was [${'$'}{t.maxParallelForks}]") + | } + |} + """.trimMargin()) + executeTasks(":test", isRunAsTest = true) + // verify the max parallel fork value did not change + assertTestConsoleContains("The max parallel fork was [$parallelForks]") + } + } } diff --git a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/init/JvmDebugInit.gradle b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/init/JvmDebugInit.gradle index a14ae5d6b73d..08267d6a6b08 100644 --- a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/init/JvmDebugInit.gradle +++ b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/init/JvmDebugInit.gradle @@ -10,10 +10,6 @@ gradle.taskGraph.whenReady { TaskExecutionGraph taskGraph -> logger.debug("idea.gradle.debug.all is ${debugAllIsEnabled}") taskGraph.allTasks.each { Task task -> - if (task instanceof Test) { - task.maxParallelForks = 1 - task.forkEvery = 0 - } } def jvmTasks = taskGraph.allTasks.findAll { task -> task instanceof JavaForkOptions } def matchedTasks = debugAllIsEnabled ? jvmTasks : GradleTasksUtil.filterStartTasks(jvmTasks, gradle, rootProject) @@ -23,6 +19,10 @@ gradle.taskGraph.whenReady { TaskExecutionGraph taskGraph -> if (!GradleDebuggerUtil.isDebuggerEnabled()) { return } + if (task instanceof Test) { + task.maxParallelForks = 1 + task.forkEvery = 0 + } String debuggerId = GradleDebuggerUtil.getDebuggerId() String processParameters = GradleDebuggerUtil.getProcessParameters() List processOptions = GradleDebuggerUtil.getProcessOptions()