Skip to content

Commit 13ccb68

Browse files
committed
Properly report disabled dynamic tests and containers to Android instrumentation
1 parent 8e9c698 commit 13ccb68

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/internal/runners/AndroidJUnitPlatformRunnerListener.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package de.mannodermaus.junit5.internal.runners
33
import android.annotation.SuppressLint
44
import android.util.Log
55
import de.mannodermaus.junit5.internal.LOG_TAG
6+
import de.mannodermaus.junit5.internal.extensions.isDynamicTest
67
import org.junit.platform.engine.TestExecutionResult
78
import org.junit.platform.engine.reporting.ReportEntry
89
import org.junit.platform.launcher.TestExecutionListener
@@ -41,13 +42,15 @@ internal class AndroidJUnitPlatformRunnerListener(
4142
}
4243

4344
override fun executionSkipped(testIdentifier: TestIdentifier, reason: String) {
44-
if (testIdentifier.isTest) {
45-
fireTestIgnored(testIdentifier, reason)
46-
} else {
47-
testTree.getTestsInSubtree(testIdentifier)
48-
.forEach { identifier ->
49-
fireTestIgnored(identifier, reason)
45+
when {
46+
testIdentifier.isTest -> fireTestIgnored(testIdentifier, reason)
47+
testIdentifier.isDynamicTest -> fireTestIgnored(testIdentifier, reason)
48+
testIdentifier.isContainer -> testTree.getChildren(testIdentifier).forEach { childIdentifier ->
49+
// Only report leaf tests as skipped
50+
if (childIdentifier.isTest || childIdentifier.isDynamicTest) {
51+
fireTestIgnored(childIdentifier, reason)
5052
}
53+
}
5154
}
5255
}
5356

instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/internal/runners/AndroidJUnitPlatformTestTree.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,8 @@ internal class AndroidJUnitPlatformTestTree(
153153
): Description {
154154
val name = nameExtractor(identifier)
155155

156-
return if (identifier.isTest) {
156+
157+
return if (identifier.isTest || identifier.isDynamicTest) {
157158
Description.createTestDescription(
158159
/* className = */ testPlan.getParent(identifier)
159160
.map(nameExtractor)
@@ -190,10 +191,8 @@ internal class AndroidJUnitPlatformTestTree(
190191
return testIdentifier.displayName
191192
}
192193

193-
fun getTestsInSubtree(ancestor: TestIdentifier): Set<TestIdentifier> {
194-
return modifiedTestPlan.getDescendants(ancestor)
195-
.filter { it.isTest }
196-
.toSet()
194+
fun getChildren(testIdentifier: TestIdentifier): Set<TestIdentifier> {
195+
return modifiedTestPlan.getDescendants(testIdentifier)
197196
}
198197

199198
/**

0 commit comments

Comments
 (0)