Skip to content

Commit bb88ec9

Browse files
committed
Configure Mockito Java agent in Test tasks
Closes gh-35207
1 parent eac490d commit bb88ec9

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

buildSrc/src/main/java/org/springframework/build/TestConventions.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,26 @@
1616

1717
package org.springframework.build;
1818

19-
import java.util.Map;
20-
2119
import org.gradle.api.Project;
20+
import org.gradle.api.artifacts.Configuration;
21+
import org.gradle.api.artifacts.Dependency;
2222
import org.gradle.api.plugins.JavaBasePlugin;
2323
import org.gradle.api.tasks.testing.Test;
2424
import org.gradle.api.tasks.testing.TestFrameworkOptions;
2525
import org.gradle.api.tasks.testing.junitplatform.JUnitPlatformOptions;
2626
import org.gradle.testretry.TestRetryPlugin;
2727
import org.gradle.testretry.TestRetryTaskExtension;
2828

29+
import java.util.Map;
30+
2931
/**
3032
* Conventions that are applied in the presence of the {@link JavaBasePlugin}. When the
3133
* plugin is applied:
3234
* <ul>
3335
* <li>The {@link TestRetryPlugin Test Retry} plugin is applied so that flaky tests
3436
* are retried 3 times when running on the CI server.
37+
* <li>Common test properties are configured
38+
* <li>The Mockito Java agent is set on test tasks.
3539
* </ul>
3640
*
3741
* @author Brian Clozel
@@ -45,6 +49,7 @@ void apply(Project project) {
4549
}
4650

4751
private void configureTestConventions(Project project) {
52+
configureMockitoAgent(project);
4853
project.getTasks().withType(Test.class,
4954
test -> {
5055
configureTests(project, test);
@@ -75,6 +80,19 @@ private void configureTests(Project project, Test test) {
7580
);
7681
}
7782

83+
private void configureMockitoAgent(Project project) {
84+
if (project.hasProperty("mockitoVersion")) {
85+
String mockitoVersion = (String) project.getProperties().get("mockitoVersion");
86+
Configuration mockitoAgentConfig = project.getConfigurations().create("mockitoAgent");
87+
mockitoAgentConfig.setTransitive(false);
88+
Dependency mockitoCore = project.getDependencies().create("org.mockito:mockito-core:" + mockitoVersion);
89+
mockitoAgentConfig.getDependencies().add(mockitoCore);
90+
project.afterEvaluate(p -> {
91+
p.getTasks().withType(Test.class, test -> test.jvmArgs("-javaagent:" + mockitoAgentConfig.getAsPath()));
92+
});
93+
}
94+
}
95+
7896
private void configureTestRetryPlugin(Project project, Test test) {
7997
project.getPlugins().withType(TestRetryPlugin.class, testRetryPlugin -> {
8098
TestRetryTaskExtension testRetry = test.getExtensions().getByType(TestRetryTaskExtension.class);

framework-platform/framework-platform.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ dependencies {
2020
api(platform("org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2"))
2121
api(platform("org.jetbrains.kotlinx:kotlinx-serialization-bom:1.9.0"))
2222
api(platform("org.junit:junit-bom:5.13.3"))
23-
api(platform("org.mockito:mockito-bom:5.18.0"))
23+
api(platform("org.mockito:mockito-bom:${mockitoVersion}"))
2424
api(platform("tools.jackson:jackson-bom:3.0.0-rc5"))
2525

2626
constraints {

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ org.gradle.jvmargs=-Xmx2048m
55
org.gradle.parallel=true
66

77
kotlinVersion=2.2.0
8+
mockitoVersion=5.18.0
89

910
kotlin.jvm.target.validation.mode=ignore
1011
kotlin.stdlib.default.dependency=false

0 commit comments

Comments
 (0)