Skip to content

Commit 669891d

Browse files
committed
fix: fix junit 6 support
1 parent 81c1cb5 commit 669891d

4 files changed

Lines changed: 24 additions & 9 deletions

File tree

java-extension/com.microsoft.java.test.plugin/src/main/java/com/microsoft/java/test/plugin/searcher/JUnit6TestFinder.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,12 @@ public boolean isTest(IType type) throws JavaModelException {
121121
}
122122

123123
private boolean internalIsTest(IType type, IProgressMonitor pm) throws JavaModelException {
124-
// Use JUnit 6 loader to check if the class is accessible
125-
if (!CoreTestSearchEngine.isAccessibleClass(type, JUNIT6_LOADER)) {
124+
// Use JUnit 6 loader to check if the class is accessible.
125+
// Fall back to JUnit 5 loader since Eclipse JDT may not have registered
126+
// the JUnit 6 loader yet. JUnit 6 is backward compatible with JUnit 5.
127+
if (!CoreTestSearchEngine.isAccessibleClass(type, JUNIT6_LOADER) &&
128+
!CoreTestSearchEngine.isAccessibleClass(type,
129+
"org.eclipse.jdt.junit.loader.junit5")) {
126130
return false;
127131
}
128132

java-extension/com.microsoft.java.test.plugin/src/main/java/com/microsoft/java/test/plugin/searcher/JUnit6TestSearcher.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,12 @@ public TestKind getTestKind() {
5151

5252
@Override
5353
public String getJdtTestKind() {
54-
return TestKindRegistry.JUNIT6_TEST_KIND_ID;
54+
// Use JUnit 5 test kind ID because Eclipse JDT's TestKindRegistry does not
55+
// have a registered JUnit 6 loader yet. The isAccessibleClass() check in
56+
// CoreTestSearchEngine requires a registered loader to work correctly.
57+
// Since JUnit 6 is backward compatible with JUnit 5's Jupiter platform,
58+
// using the JUnit 5 loader for classpath accessibility checks is safe.
59+
return TestKindRegistry.JUNIT5_TEST_KIND_ID;
5560
}
5661

5762
@Override

java-extension/com.microsoft.java.test.plugin/src/main/java/com/microsoft/java/test/plugin/util/TestSearchUtils.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,12 @@ private static void findTestItemsInTypeBinding(ITypeBinding typeBinding, JavaTes
429429
.setLevel(TestLevel.CLASS)
430430
.setKind(TestKind.JUnit5)
431431
.build();
432+
} else if (TestFrameworkUtils.JUNIT6_TEST_SEARCHER.isTestClass(type)) {
433+
// to handle @Nested and @Testable classes in JUnit 6
434+
classItem = new JavaTestItemBuilder().setJavaElement(type)
435+
.setLevel(TestLevel.CLASS)
436+
.setKind(TestKind.JUnit6)
437+
.build();
432438
}
433439
}
434440

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,18 @@
5656
"contributes": {
5757
"javaExtensions": [
5858
"./server/com.microsoft.java.test.plugin-0.43.1.jar",
59-
"./server/junit-jupiter-api_5.14.1.jar",
59+
"./server/junit-jupiter-api_5.14.3.jar",
6060
"./server/junit-jupiter-api_6.0.1.jar",
61-
"./server/junit-jupiter-engine_5.14.1.jar",
61+
"./server/junit-jupiter-engine_5.14.3.jar",
6262
"./server/junit-jupiter-engine_6.0.1.jar",
6363
"./server/junit-jupiter-migrationsupport_5.14.1.jar",
64-
"./server/junit-jupiter-params_5.14.1.jar",
64+
"./server/junit-jupiter-params_5.14.3.jar",
6565
"./server/junit-jupiter-params_6.0.1.jar",
66-
"./server/junit-platform-commons_1.14.1.jar",
66+
"./server/junit-platform-commons_1.14.3.jar",
6767
"./server/junit-platform-commons_6.0.1.jar",
68-
"./server/junit-platform-engine_1.14.1.jar",
68+
"./server/junit-platform-engine_1.14.3.jar",
6969
"./server/junit-platform-engine_6.0.1.jar",
70-
"./server/junit-platform-launcher_1.14.1.jar",
70+
"./server/junit-platform-launcher_1.14.3.jar",
7171
"./server/junit-platform-launcher_6.0.1.jar",
7272
"./server/junit-platform-runner_1.14.1.jar",
7373
"./server/junit-platform-suite-api_1.14.1.jar",

0 commit comments

Comments
 (0)